Colocar cor no edit com o skin do delphi xe2

Delphi

11/05/2012

Eu tenho um sistema e nos cadastros todos os edits tem os eventos onenter (mudar o edit de cor) e o onexit(volta o edit para a cor padrão), mas migrei meu sistema para o delphi xe2 e estou usando o skin nativo dele, mas tem um problema meu edit não muda de cor quando jogo o focu para ele, existe alguma solução para isso sem ter que tirar o skin?
Desde já agradeço.
Thiago Porto

Thiago Porto

Curtidas 0

Respostas

Cesar Roniglei

Cesar Roniglei

11/05/2012

Bom dia thiago,

Creio que seja melhor você fazer isso a nivel de herança no seu formulário padrão, assim você não ficaria amarrado ao componente de skin, idependente da versao do delphi iria funcionar.

Segue abaixao o código como exemplo, fazendo isso irá funcionar normalmente.

procedure TForm1.FormCreate(Sender: TObject);
var
  I: integer;
begin
  { Percorre a lista de componentes do form (matriz de componentes)
    e verifica cada componente para saber se é um TEdit. Se for,
    associa o evento OnExit do componente com a procedure
    MudancaDeFoco. }
  for I := 0 to ComponentCount - 1 do
    if Components[I] is TEdit then
      (Components[I] as TEdit).OnExit := MudancaDeFoco;

end;

procedure TForm1.MudancaDeFoco(Sender: TObject);
var
  I: integer;
  Ed: TEdit;
begin
  { Percorre a matriz de componentes do form }
  for I := 0 to ComponentCount - 1 do
    { Se o componente é do tipo TEdit... }
    if Components[I] is TEdit then
    begin
      { Faz um type-casting pata o tipo TEdit }
      Ed := Components[I] as TEdit;

      { Se o Edit está com o foco... }
      if Ed.Focused then
        Ed.Color := clYellow { Amarelo }
      else
        Ed.Color := clWhite; { Branco }
    end;
end;



César Roniglei
Consultor e Desenvolvedor (Delphi, Oracle, SQLServer, Firebird, MySQL).
E-mail: cesar.roniglei@live.com
Skype : cesar.roniglei
GOSTEI 0
Thiago Porto

Thiago Porto

11/05/2012

não funcionou, mas obrigado pela ajuda.
GOSTEI 0
Cesar Roniglei

Cesar Roniglei

11/05/2012

Bom dia Thiago,

Lembrando que você deverá deixar a Propriedade KeyPreview do Formulário como TRUE.



César Roniglei
Consultor e Desenvolvedor (Delphi, Oracle, SQLServer, Firebird, MySQL).
E-mail: cesar.roniglei@live.com
Skype : cesar.roniglei
GOSTEI 0
Thiago Porto

Thiago Porto

11/05/2012

sim, eu sei.
GOSTEI 0
POSTAR