| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Fernando Diaz Master


Registrado: 18 Jul 2004Mensajes: 273Ubicación: Talavera de la Reina (Toledo)
|
Publicado: Sab 21 Ago, 2004 9:39 am Asunto: Array de compoentes - Pregunta facil... o no... |
|
|
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 |
|
 |
cecito Capt

Registrado: 25 Nov 2003Mensajes: 164Ubicación: Arequipa - Perú
|
Publicado: Sab 21 Ago, 2004 3:45 pm Asunto: |
|
|
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  |
|
| Volver arriba |
|
 |
ikis Master


Registrado: 28 Dic 2002Mensajes: 703Ubicación: Madrid, España
|
Publicado: Sab 21 Ago, 2004 5:14 pm Asunto: |
|
|
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
atte _________________ Adrián
http://adrian.org.ar |
|
| Volver arriba |
|
 |
Fernando Diaz Master


Registrado: 18 Jul 2004Mensajes: 273Ubicación: Talavera de la Reina (Toledo)
|
Publicado: Sab 21 Ago, 2004 5:53 pm Asunto: |
|
|
muchisimas gracias ikis, eternamente agradecido  _________________ Los problemas mas dificiles tienen las soluciones mas sencillas
 |
|
| Volver arriba |
|
 |
|