Ver Mensaje Individual
  #8  
Antiguo 15-05-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola xorc.

Primero te comento que estas líneas son redundantes:
Código Delphi [-]
  if sender is TComboBox then   // Es un TComboBox.
  begin 
    with sender as Tcombobox do //  ¿ Para que ?, si ya sabemos que es un TComboBox
Mejor sería:
Código Delphi [-]
  if Sender is TComboBox then  // Es un TComboBox.
  begin
    with TComboBox(Sender) do  // con el TComboBox hacer
    ...

Ahora, para que el procedimiento se le pueda aplicar a diferentes controls yo usaría RTTI:
Código Delphi [-]
...
uses TypInfo;

procedure TForm1.Parpadear(AHandle: THandle; AColor: string);
var
  Aux: TColor;
  TC: TControl;
  PInfo: PPropInfo;
begin
  TC:= FindControl(AHandle);
  PInfo:= GetPropInfo(TC.ClassType, 'Color');
  if PInfo <> nil then
  begin
    Aux:= GetOrdProp(TC, 'Color');
    SetOrdProp(TC, PInfo, StringToColor(AColor));
    Update;
    Sleep(100);
    SetOrdProp(TC, PInfo, Aux);
    Update;
  end;
end;

Ejemplo de llamadas:
Código Delphi [-]
...
  Parpadear(Panel1.Handle, 'clRed');
  Parpadear(ComboBox1.Handle, 'clLime');
  Parpadear(Edit1.Handle,'clBlue');
...

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita