Programación General > C++ Builder
Generar DBEdit en tiempo de ejecución
avefenix1810:
Gracias nuevamente TRod. Logré que funcionara, pero solo me permite agregar un TDBEdit, si aprieto nuevamente en botón arroja error ya que se esta creando un nuevo TDBEdit con el mismo nombre.
No se si estoy en lo correcto, pero creo que para cada TDBEdit nuevo que se quiera agregar, debo tener un boton con los nuevos datos,... la verdad no sé... voy a probar que resulta de eso.
:gracias:
TRod:
Así es. Por eso te mencione antes que hay que tener cuidado al definir los nombres (Name) de cada control creado.
:think:
Creo que hay más trasfondo en este tema.
Puedes "jugar" un poco con la propiedad Name.
AnsiString NombreCualquiera = "MiControl";
Control->Name = NombreCualquiera;
Ahora bien, la solución más común en estos casos es utilizar una variable global que funcione como contador de controles:
int contador=0;
... <resto de tu codigo>
...
AnsiString NombreCualquiera = "MiControl";
Control->Name = NombreCualquiera + IntToStr(contador);
contador++;
.... <resto de tu codigo>
Eso va a provocar que el nombre del control sea distinto cada vez que mandes a llamar el evento.
Bien. Ahora surge el problema de las coordenadas en pantalla para posicionar cada control creado.
Ese trabajo sucio te lo dejo a ti. :kicking: ya que eso depende mucho del tipo de interfaz que estas diseñando en tu programa.
Y no olvides encerrar las intrucciones con la sentencia "try/catch". Los métodos de excepciones no son de broma. Funcionan muy bien a la hora de las metidas de pata de programador/usuario.
... y hasta ahí todo bien... pero ahora te toparas con el problema de como acceder a cada control que creaste.
Esperame. La solución te la posteo en unos momentos. Estoy un poco oxidado en programación :losiento: jejeje
TRod:
Para acceder a los DBEdit creados dinámicamente, irremediablemente tendras que hacer uso del método "FindComponent()"
TDBEdit *UnEditDinamico;
UnEditDinamico = (TDBEdit*)FindComponent("NombreMiControl");
Donde "NombreMiControl" es el nombre del componente al que deseas acceder a su contenido.
Te espera un poco de trabajo sucio. :lightsabre:
:suerte:
avefenix1810:
Gracias TRod... me queda super claro el tema.
Con respecto al posicionamiento eso ya lo tenia contemplado usando un par de variables (int posx, posy) puedo posicionar los elementos donde desee. También había pensado en variar un numero que acompañara al nombre del componente, pero no me atreví a hacerlo, ya que no sabia si concatenandolo funcionaría, pero por lo que dices .... si se puede :jumpie:
Lo que señalas en el último post no lo sabia... voy a probar que sale de eso.
Muchas gracias. Estaba probando de todo y ya estaba un poco frustrado porque no me salia nada. Nuevamente.... GRACIAS :gracias:
PD: Quiero utilizar componentes de Office en mi aplicación... ¿sabes algo de eso, o de algún tutorial que pueda leer?
Navegación
[*] Página Anterior
Ir a la versión completa