Problema com função para mudar a cor do TEdits e TBBEdits
20/03/2013
0
Estou usando a seguinte procedure para mudar a cor dos edits.
class procedure TEventos.CorOnEnter(Sender: TObject); begin if Sender.ClassType = TEdit then (Sender as TEdit).Color := clYellow; if Sender.ClassType = TDBEdit then (Sender as TDBEdit).Color := clYellow; end; class procedure TEventos.CorOnExit(Sender: TObject); begin if Sender.ClassType = TEdit then (Sender as TEdit).Color := clWindow; if Sender.ClassType = TDBEdit then (Sender as TDBEdit).Color := clwindow; end;
E aqui eu chamo ela nos meus formulários.
var I: Integer; begin for I := 0 to ComponentCount - 1 do if Components[I].ClassType = TEdit then begin (Components[I] as TEdit).OnEnter := TEventos.CorOnEnter; (Components[I] as TEdit).OnExit := TEventos.CorOnExit; end;
Só que eu utilizo o evento OnChange e OnExit de diversos edits no meu sistema e o evento OnChange ele é ativado assim que abre o formulário e o evento OnExit parou de funcionar.
Nícolas Braz
Posts
20/03/2013
Joel Rodrigues
O evento onde você muda a cor ou o evento padrão que você trata individualmente para cada edit?
20/03/2013
Nícolas Braz
O evento onde você muda a cor ou o evento padrão que você trata individualmente para cada edit?
O evento que eu trato individualmente.
20/03/2013
Joel Rodrigues
20/03/2013
Joel Rodrigues
Por exemplo, em C# nós fazemos += para associar uma função a um evento, e não =. Ou seja, adicionamos uma função para tratar aquele evento, mas não limitamos somente a uma.
20/03/2013
Nícolas Braz
Eu também pensei nisso! Só que agora não sei o que fazer ...
20/03/2013
Evandro Sanz
1
2
3
4
5
6
7
8
9
10
11
procedure TFrmPadrao.ChangeExit(Sender: TObject);
begin
if Sender is TDBEdit then
TDBEdit(Sender).Color := clWindow
else if Sender is TDBLookupComboBox then
TDBLookupComboBox(Sender).Color := clWindow
else if Sender is TDBComboBox then
TDBComboBox(Sender).Color := clWindow
else if Sender is TDBMemo then
TDBMemo(Sender).Color := clWindow;
end;
Isso se encontra em um artigo aqui da devmedia segue link!
https://www.devmedia.com.br/criando-form-padrao-heranca-aplicacao-completa-delphi-firebird-e-tcxscheduler
/23109#ixzz2O5XuvHQf
Abraço!
20/03/2013
Joel Rodrigues
E como eu disse, não sei se o Delphi aceita múltiplos event handlers.
20/03/2013
Nícolas Braz
E como eu disse, não sei se o Delphi aceita múltiplos event handlers.
Exatamente! Existe algum outro método para se usar? Eu uso o evento OnExit e OnChange para calcular os valores de edits.
Clique aqui para fazer login e interagir na Comunidade :)