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 

Array de compoentes - Pregunta facil... o no...

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Array de compoentes - Pregunta facil... o no... Responder citando

pues elotro dia estube haciendo un programa que tenia unos 12 edit de Edit1 a Edit12 y al querer ponerlos todos a false o todos en blanco...o todos = en una propiedad pues lo hacia con copy-paste:

Edit1->Text="hola";
..
Editn->Text="hola";
..
Edit12->Text="hola";

queria saber si hay alguna forma de meterlo en un bucle o algo al estilo
for (int x=1;x<=12;x++)
Edit+x->Text="hola"

OBIAMENTE se que eso no funciona pero lo que quiero intentar preguntar es como lo hariais vosotros si tuvierais por ejemplo 100 Edits o 100 Labels....nose
_________________
Los problemas mas dificiles tienen las soluciones mas sencillas
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email Visitar sitio web del autor MSN Messenger
Mensaje    Asunto: Responder citando

A mi se me presento un problema similar pero fué con la propiedad Enabled y lo solucioné así:
Código:
void __fastcall PonTodosItemsEnabled( TWinControl *Contenedor, bool Enabled )
{
  for( int x = 0; x < Contenedor->ControlCount; x++)
    Contenedor->Controls[x]->Enabled = Enabled;
  Contenedor->Enabled = Enabled;
}

Lo usaba + o - así:
Tengo varios controles en un contenedor( Form, Panel, GroupBox, Frame,..) y deseo poner a Enabled=False a todos sus componentes simplemente digo:
Código:
//Un Panel
PonTodosItemsEnabled(Panel,false);
//un GroupBox
PonTodosItemsEnabled(grbOpciones,true);

Para resolver tu problema podrias probar esta función que acabo de implementar:
Código:
En el  .h pondrias:
void __fastcall PonEditsText( TWinControl *Contenedor, AnsiString Texto = "" );

y en el  .cpp
void __fastcall PonEditsText( TWinControl *Contenedor, AnsiString Texto )
{
  for( int x = 0; x < Contenedor->ControlCount; x++)
  { TEdit * edt = dynamic_cast<TEdit*>(Contenedor->Controls[x]);
    if( edt )
      edt->Text = Texto;
  }
}
y su uso sería:
Código:
//Un Panel
PonEditsText(Panel,"Hola");
//Limpiar los Edits de un GroupBox
PonEditsText(grbOpciones);
//De mi actual formulario
PonEditsText(this, "Hola");

Espero haberte ayudado Razz
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

una alternativa a la de Cecito y sin usar contenedores

Código:

TEdit *edTxt;

for (int x=1;x<=12;x++){
  edTxt  = (TEdit*) FindComponent("Edit" + AnsiString(i));
  edTxt->Text="hola";
}



pd Por Favor haz q tus asuntos sean más descriptivos acerca del problema que planteas Wink

atte
_________________
Adrián

http://adrian.org.ar
Volver arriba
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor
Mensaje    Asunto: Responder citando

muchisimas gracias ikis, eternamente agradecido Wink
_________________
Los problemas mas dificiles tienen las soluciones mas sencillas
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email 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.