Programación General > C++ Builder

 Cambiar Propiedad De Varios Componentes

(1/2) > >>

neg1414:
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

Linspire:
Supongo que puedes recorrer todos los componentes con un ciclo for y cambiarles lo que deseas, puedes tomar el siguiente ejemplo para inspirarte, es para limpiar todos los Edits de un Form


--- Código: Text --- for (int i=0;i<ComponentCount;i++)   {          if(Components[i]->InheritsFrom(__classid(TCustomEdit)))               ((TCustomEdit*)Components[i])->Clear();    }  
Espero pueda servirte. Saludos :D

neg1414:
En primer lugar gracias por contestarme.

 He probado tu solucion pero me ha surgido un problema:

 El componente (Componentes: TComponent1, Tcomponent2...) lo he creado yo y el metodo al que llaman el grupo de componentes no es  reconocido cuando  realizo  la llamada,  de la misma forma que si reconoze el metodo clear() del TEdit del ejemplo.


  ((TComponentePropio*)Components)->MetodoPropio();  NO FUNCIONA


Espero Habeme explicado bien

Gracias Otra VEz

Linspire:
Si, si te he entendido, pero, todos los componentes son iguales? o son distintos? (es decir, todos son Edits (eg)o son Edits, Buttons y mas.)
 :huh:

neg1414:
son todos el mismo componente vcl creado por mi (40 iguales)

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa