Colocar cor no edit com o skin do delphi xe2
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.
Desde já agradeço.
Thiago Porto
Curtidas 0
Respostas
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.
César Roniglei
Consultor e Desenvolvedor (Delphi, Oracle, SQLServer, Firebird, MySQL).
E-mail: cesar.roniglei@live.com
Skype : cesar.roniglei
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
11/05/2012
não funcionou, mas obrigado pela ajuda.
GOSTEI 0
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
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
11/05/2012
sim, eu sei.
GOSTEI 0