 |
Club Builder Foro de C++Builder en español
|
| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Invitado Invitado
|
Publicado: Jue 29 Abr, 2004 12:59 pm Asunto: Arrays de componentes |
|
|
Hola:
Me gustaria saber si en Builder hay alguna manera de almacenar componentes en un array. Uno de mis problemas es que necesito introducir determinada información en unos 25 edtis, y no puedo ir añadiendo la información uno por uno. Además, también necesitaría poder hacer lo mismo con etiquetas, combo box, etc...
Agradecería cualquier ayuda que me pudieseis dar, aunque fuese una simple idea puesto que estoy muy perdida y es importante que pudiese solucionar este tipo de problema.
Muchas gracias |
|
| Volver arriba |
|
 |
dcelso_ Invitado
|
Publicado: Jue 29 Abr, 2004 1:49 pm Asunto: el truco que usé yo |
|
|
Bueno, la verdad es que se pueden hacer tedits en tiempo de ejecución, pero el problema es que debes definirle posición y varias propiedades haciendo un poco más dificil su trabajo, si en verdad solo vas a tener un número fijo de edits como 26, y luego quieres hacer un bucle para ir metiendo datos en ellos lo más cómodo sería hacer un array de punteros TCustomEdits y hacer que apunten a tus edits, algo parecido a esto
defines esto en las propiedades de tu tform1, en el .h
TCustumEdit *edits[26];
luego en el oncreate, o en el onshow del form1 pones:
edits[0]=Edit1;
edits[1]=Edit2;
edits[2]=Edit3;
etc .... asi hasta el 25;
La verdad es que esto no te lo ahorras de otra forma, la ventaja es que solo lo tienes que escribir una vez.
y luego ya puedes acceder a los edits con un bucle cambiando i;
Si vas a tener que poner distinto número de edits, cada uno debes declararlo con:
edit[0]=new TCustomEdit;
al menos poner sus valores de width y de heigth, de left y top;
y no olvidar eliminarlo en el formclose o destroy, con delete edit[0];
Espero que te haya quedado algo claro . |
|
| Volver arriba |
|
 |
Invitado Invitado
|
Publicado: Vie 30 Abr, 2004 11:31 am Asunto: |
|
|
Pues muchísimas gracias porque estaba todo muy claro, y ya lo he probado y me funciona!
Ahora podré ir a enseñárselo a la persona que me dijo que si no sabía programar eso me dedicase a la esteticien y no a estudiar ingeniería informática...  |
|
| Volver arriba |
|
 |
LordNemesis Master


Registrado: 31 Dic 2003Mensajes: 340Ubicación: México
|
Publicado: Vie 30 Abr, 2004 5:03 pm Asunto: |
|
|
Creo que de esta manera podrias hacerlo mas facil.....
| Código: |
TEdit *edits[n];
int c=0;
for(int i=0;i<ComponentCount;i++)
{
if(Components[i]->ClassName=="TEdit")
edits[c++]=(TEdit*)Components[i];
}
|
De esta manera, cada que agreges o elimines controles, ya no necesitas cambiar el codigo, de mas esta decir que te funciona para cualquier componente nada mas cambiando la condicion... saludos  _________________ Dirección Municipal de Informática
H. Ayuntamiento de Tijuana
Arriba Lopez Obrador !!!
Los Mexicanos Merecemos Respeto !!! |
|
| Volver arriba |
|
 |
|
|
No puedes publicar temas nuevos en este foro No puedes responder a temas en este foro No puedes editar tus mensajes en este foro No puedes borrar tus mensajes en este foro No puedes votar en las encuestas de este foro
|
© 2002–2026 Club Builder · Funciona con phpBB.
|