Seleccionar edits através de un rango (duda)
Por el tÃtulo no se entiende mucho, pero tengo un pequeño problemilla. Hace algun tiempo que programo en Delphi y nunca es sabido seleccionar un objeto cuando me pasan un rango. Me explico mejor.
Tengo 400 Edits. Para selecionar uno hago (ejemplo) Form1.Edit1.Text:='Ejemplo';
pero si me dicen: pon ejemplo en los edits entre 200 y 350. No puedo hacer un:
for i:=200 to 350 do
Form1.i.Text:='Ejemplo';
No se como seleccionar esos edits. De la unica manera que se, tendria que hacer condicionales de los 400 edits para ver si he de poner 'Ejemplo' uno por uno. Y no creo que esa sea la manera.
Si alguna alma caritatiba me lo puediera explicar. Gracias
Tengo 400 Edits. Para selecionar uno hago (ejemplo) Form1.Edit1.Text:='Ejemplo';
pero si me dicen: pon ejemplo en los edits entre 200 y 350. No puedo hacer un:
for i:=200 to 350 do
Form1.i.Text:='Ejemplo';
No se como seleccionar esos edits. De la unica manera que se, tendria que hacer condicionales de los 400 edits para ver si he de poner 'Ejemplo' uno por uno. Y no creo que esa sea la manera.
Si alguna alma caritatiba me lo puediera explicar. Gracias
Hola, la verdad tengo pocos conocimientos de Delphi pero creo que esto te podria ayudar un poco a tener una idea (por lo menos):
Si creas un arreglo de punteros de tipo Edit y a cada posicion le asignas el manejador (handle) de esos Edit's que ya tienes creados de manera estatica, y luego te refieres a ellos por el nombre de ese vector y su respectivo indice. Aqui te doy el codigo de como lo se hacer en C++Builder que creo que se parece un poco a Delphi:
//******************************************//
//Declaracion del arreglo de tipo Edit
TEdit *arreglo[400];
//ahora lo tedioso aqui es que tienes que asignar
//a ese vector los 400 Edit's que estan en tu
//forma. Yo voy a hacer unos pocos
//para el primero
arreglo[0]=Form1->Edit1;
arreglo[1]=Form1->Edit2;
arreglo[2]=Form1->Edit3;
//y asi sucesivamente
//ahora para seleccionar el rango
for(i=199;i<350;i++)
arreglo[i]->Text="Ejemplo";
//y asi el rango que tu quieras
Bueno la verdad espero que te pueda servir de algo este codigo en C++ Builder si puedes hacer la equivalencia a Delphi.
Si creas un arreglo de punteros de tipo Edit y a cada posicion le asignas el manejador (handle) de esos Edit's que ya tienes creados de manera estatica, y luego te refieres a ellos por el nombre de ese vector y su respectivo indice. Aqui te doy el codigo de como lo se hacer en C++Builder que creo que se parece un poco a Delphi:
//******************************************//
//Declaracion del arreglo de tipo Edit
TEdit *arreglo[400];
//ahora lo tedioso aqui es que tienes que asignar
//a ese vector los 400 Edit's que estan en tu
//forma. Yo voy a hacer unos pocos
//para el primero
arreglo[0]=Form1->Edit1;
arreglo[1]=Form1->Edit2;
arreglo[2]=Form1->Edit3;
//y asi sucesivamente
//ahora para seleccionar el rango
for(i=199;i<350;i++)
arreglo[i]->Text="Ejemplo";
//y asi el rango que tu quieras
Bueno la verdad espero que te pueda servir de algo este codigo en C++ Builder si puedes hacer la equivalencia a Delphi.
Busca en la ayuda la funcion FindComponet eso es lo que buscas....
Suerte!!
Suerte!!
Teneis razón. Se puede hacer de las dos maneras. Pero la mejor es con el FindComponent.Lo explico que ya lo he encontrado.
for i:=1 to 5 do
(FindComponent('Edit'+IntToStr(i)) as TEdit).Text:='Ejemplo';
Para quien tenga la misma duda, aquà esta la solución.
Gracias por la ayuda
for i:=1 to 5 do
(FindComponent('Edit'+IntToStr(i)) as TEdit).Text:='Ejemplo';
Para quien tenga la misma duda, aquà esta la solución.
Gracias por la ayuda
