Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   C++ Builder (https://www.clubdelphi.com/foros/forumdisplay.php?f=13)
-   -   Ejecutar propiedad comun a varios componentes (https://www.clubdelphi.com/foros/showthread.php?t=51086)

NEG1414 05-12-2007 15:43:41

Ejecutar propiedad comun a varios componentes
 
Buenas

El caso es que tengo varios Componentes del mismo tipo a los que he denominado de la forma:

TComponent1
TComponent2
TComponent3
.......
TComponent40

Segun la eleccion del usuario se ejecuta un metodo "CambiarCaption" en la que se llama a un procedimiento propio del Componente (la mima llamada para cada componente)


CambiarCaption()
{
TComponent1->Procedimiento();
TComponent2->Procedimiento();
TComponent3->Procedimiento();
.............................
TComponent40->Procedimiento();

}

Mi pregunta es la siguiente: Al ser el procedimiento a ejecutar igual para todos los
Componentes seria posible Evitar la tediosa operacion de ir enumerando uno a uno todos los componentes con su respectiva llamada y hacerlo de una manera mas comoda


Gracias

jhonny 05-12-2007 15:50:22

A ver si entiendo, ¿lo que quieres es recorrer los componentes que estan en algun formulario y si son del tipo que tu mencionas ejecutar dicho procedimiento?

jhonny 05-12-2007 16:45:55

Jugando un poquito con el C++Builder me encontre con que puedo recorrer todos los componentes del Form de una manera muy parecida a Delphi, solo que el TypeCast es un poco mas divertido :).

Por ejemplo, en el siguiente caso he recorrido todos los TEdits y les asigne a su propiedad Text la cadena "Hola"... al hacer Click en un Boton.

Código:

void __fastcall TForm1::Button1Click(TObject *Sender)
{
        Integer i;

        for (i = 0; i < this->ComponentCount; i++) {
                dynamic_cast<TEdit*>(Components[i])->Text = "Hola";
        }
}


Espero que te sirva de algo.


La franja horaria es GMT +2. Ahora son las 22:57:40.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi