Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Arrays de componentes

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Arrays de componentes Responder citando

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
Mensaje    Asunto: el truco que usé yo Responder citando

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 Very Happy.
Volver arriba
Mensaje    Asunto: Responder citando

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... Very Happy
Volver arriba
Mensaje    Asunto: Responder citando

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 Wink
_________________
Dirección Municipal de Informática
H. Ayuntamiento de Tijuana
Arriba Lopez Obrador !!!
Los Mexicanos Merecemos Respeto !!!
Volver arriba
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor MSN Messenger
Mostrar mensajes de anteriores:   
Cambiar a:  
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


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.