Ver Mensaje Individual
  #4  
Antiguo 21-07-2004
Avatar de ruina
ruina ruina is offline
Miembro
 
Registrado: jun 2004
Posts: 196
Reputación: 20
ruina Va por buen camino
casi mejor que con el tag se puede hacer con el operador is para verificar la clase:

Código Delphi [-]
var i:integer;
begin
  for i:=0 To ComponentCount-1 DO
      IF Components[i] is TButton then
        with Components[i] as TButton do
        begin
            Caption:='hola';
            //...
        end
      else  if Components[i] is TCheckBox then
        with Components[i] as TCheckBox do
        begin
             Color:=clred;
             //...
        end;
end;

aunque lo realmente interesante seria verificar la propiedad 'Color' en runtime y cambiarla, para ello hay un par de funciones muy interesantes en TypInfo.pas, por ejemplo vease esta funcion que cambia el 'Color' a todos los componentes del form que tengan 'Color':

Código Delphi [-]
var pinfopropinfo;
var i:integer;
begin
  for i:=0 To ComponentCount-1 DO
  begin
       pinfo:=GetPropInfo(Components[i].ClassInfo,'Color');
       if pinfo<>nil then
          SetPropValue(Components[i],'Color',clred);
  end;
end;
Responder Con Cita