English Deutsch Français Italiano Español Português 繁體中文 Bahasa Indonesia Tiếng Việt ภาษาไทย
Todas las categorías

Estoy programando en Builder c++ 6.0 y necesito crear y visualizar un Edit en tiempo de ejecución.
Lo que llegue a encontrar es algo como

TEdit* nuevo;//global

nuevo=new ;TEdit //cuando se crea el form
nuevo->show();

pero me tira un par de errores que no los habia visto antes.
Si me pueden dar un ejemplo maso menos completo o un link en donde aparezca se lo agradecería
desde ya gracias
CHECHO

2006-12-20 18:39:37 · 3 respuestas · pregunta de Anonymous en Ordenadores e Internet Programación y Diseño

3 respuestas

Aquí hay que hacer varias consideraciones:

1. El TEdit no es un TForm, y por lo tanto, no tiene un método Show (). Se muestra solo en un contenedor.

2. La creación de un TEdit se realiza de la siguiente forma:
TEdit * Alfa = new TEdit (Owner);

Owner es el nombre del objeto al cual pertenecerá el TEdit. Este propietario (owner) es el encargado de liberar el objeto (con delete) una vez que el conjunto se destruye, por lo general también eliminando el formulario. Si no querés que suceda esto, el parámetro Owner debe ser directamente NULL, y nadie, excepto vos, lo va a destruir. Corre por cuenta tuya la destrucción del TEdit.

3. Para que el TEdit, o cualquier control, se visualice en un contenedor, como un descendiente de TForm, debe tener un Parent (padre). Este Parent es el objeto en donde se muestra el control hijo. No se debe confundir Parent con Owner, que pueden ser distintos, y tienen diferentes tareas. Por lo general el Owner de todos los controles es el TForm. Ejemplo:

Alfa->Parent = Form1;

Digamos que tenés que asignarle un Parent que puede ser el formulario o un TPanel que tengás dentro del formulario, por citar un ejemplo.

4. Ya con un Parent, el control TEdit debe tener sus coordenadas relativas para mostrarse, es decir, hay que especificar a cuántos píxeles desde el borde izquierdo y desde el borde superior del Parent tiene que aparecer. Estas propiedades son Left y Top, que por defecto son 0. Ejemplo:

Alfa->Left = 20;
Alfa->Top = 20;

5. También tenés que definir el tamaño del TEdit, con las propiedades Height y Width (alto y ancho). Ejemplo:

Alfa->Width = 200;
Alfa->Height = 25;

6. Luego se procede a la destrucción del control TEdit, una vez que realizó todo su cometido. Ejemplo:

delete Alfa;
Alfa = NULL; /* para que no vuelva a ser utilizado, por las dudas, aunque esto es cuestión de gusto */

En síntesis, esto es cuestión de programar unas cuantas propiedades para que funcione correctamente.

Cordiales saludos.

2006-12-21 05:03:39 · answer #1 · answered by Sir John 6 · 0 0

si Tedit es una clase o tipo de datos lo que quieres hacer es lo siguiente:

Tedit* nuevo; // allí creo un puntero a datos del tipo Tedit
....
/*ahora en el lugar donde quieres que salga pones */
nuevo = new Tedit();
/* Alli creas un objeto nuevo del tipo Tedit y su dirección queda en en el puntero nuevo.*/
/*Notaras que en el Tedit hay unos parentesis. Esto sólo sirve si Tedit es una clase (del tipo class). Si hay que colocar datos de inicialización en Tedit, elos van dentro de esos parentesis.*/

Si quieres ayuda más específica, neceitaría ver qué es y como está declarado Tedit.
Espero te sirva la respuesta.

2006-12-21 03:46:06 · answer #2 · answered by ftugues 6 · 0 0

No se para que lo necesites, no lo he hecho, pero si explicas a lo mejor se me ocurre algo,
porke no usas un stringgrid? esos son dinamicos i le pones autoedit = true en las propiedades, solo tienes que aumentar el RowCount cada vez que llegues al final i listo...

si tienes mas dudas, mandame mensaje....

2006-12-20 21:40:15 · answer #3 · answered by Kingston 2 · 0 0

fedest.com, questions and answers