procedure TfrmPrincipal.MudaCor(Sender: TObject);
var MinhaCor, Cor: TColor;
    I: integer;
    Vermelho, Verde, Azul: byte;
begin
  Vermelho := 255;
  Verde := 255;
  Azul := 234;
  MinhaCor := TColor(RGB(Vermelho, Verde, Azul));
  With Screen.ActiveForm do
     begin
       for I:= 0 to ComponentCount -1 do
          begin
            if Components[I] is TCustomEdit then
               begin
                 if (Components[I] as TCustomEdit).Focused then
                    Cor := MinhaCor
                 else
                    Cor := clWhite;

                 AtribuiProp(Components[I], 'Color', IntToStr(Cor));
               end;
          end;
     end;
end;
(*Atibui propriedade ao componente, dado seu valor como string
  faz parte da procedure MudaCor*)
procedure TfrmPrincipal.AtribuiProp(Comp: TComponent; Const PropName: string; 
Val: string);
var PInfo: PPropInfo;
begin
  {Pega informações de tipo da propriedade}
  PInfo := GetPropInfo(Comp.ClassInfo, PropName);
  {Achou?}
  if PInfo <> nil then
     begin
       {Trata conforme o tipo}
       case PInfo^.Proptype^.Kind of
            tkInteger: SetOrdProp(Comp, PInfo, StrToInt(Val));
            tkChar, tkWChar: SetOrdProp(Comp, PInfo, ord(Val[1]));
            tkEnumeration: SetOrdProp(Comp, PInfo, 
GetEnumValue(PInfo^.PropType^, Val));
            tkFloat: SetFloatProp(Comp, PInfo, StrToFloat(Val));
            tkString, tkLString, tkWString: SetStrProp(Comp, PInfo, Val);
            tkVariant: SetVariantProp(Comp, PInfo, Val);
            tkInt64: SetInt64Prop(Comp, PInfo, StrToInt64(Val));
       else
            MessageDlg('Este tipo não é suportado por este programa. Erro na 
mudança de ' +
            'cor do objeto.', mtError,[mbOK],0);
       end;
     end
  else
     MessageDlg('Propriedade não encontrada.', mtError,[mbOK],0);
end;

  ----------

No virus found in this outgoing message.
Checked by AVG Anti-Virus.
Version: 7.0.300 / Virus Database: 265.8.2 - Release Date: 28/01/2005


[As partes desta mensagem que não continham texto foram removidas]



-- 
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>

Para ver as mensagens antigas, acesse:
 http://br.groups.yahoo.com/group/delphi-br/messages

Para falar com o moderador, envie um e-mail para:
 [EMAIL PROTECTED] ou [EMAIL PROTECTED]
 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/delphi-br/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 



Responder a