Ver Mensaje Individual
  #4  
Antiguo 24-11-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
No es necesario usar un procedimiento recursivo si recorres la colección Components en lugar de Controls. Components contiene todas las componentes insertadas en el formulario durante el diseño.

Para evitar tanto if puedes usar RTTI (Run Time Type Info):

Código Delphi [-]
uses
  TypInfo;

procedure Form1.Pintar;
var
  I: Integer;
  Info: PPropInfo;

begin
  for I := 0 to ComponentCount -1 do
  begin
    Info := GetPropInfo(Components[i], 'Color');
    if Info <> nil then SetPropValue(Components[i], 'Color', clGreen);
  end;
end;

De cualquier forma tendrás el problema de que precisamente hay componentes como un TButton que no pueden pintarse. Creo que tu método de la transparencia estaba mejor.

// Saludos
Responder Con Cita