Fórum Erro usando o Screen.OnActiveControl #293351
26/08/2005
0
´Project Aplicacao.exe Raise exception class EaccessViolation with ´Access violatio..´
public
{ Public declarations }
campoAnt : TEdit;
procedure controlChange(sender : TObject);
end;
......
procedure TFrMenus.FormCreate(Sender: TObject);
begin
Screen.OnActiveControlChange := controlChange;
end;
procedure TFrMenus.controlChange(sender : TObject);
begin
if Assigned(campoAnt) then
campoAnt.Color := clWindow;
if ActiveControl is TEdit then
begin
TEdit(ActiveControl).Color := clBackground; //clInfoBk;
campoAnt := TEdit(ActiveControl);
end
else
campoAnt := nil;
end;
Porty
Curtir tópico
+ 0Posts
26/08/2005
Rjun
Screen.OnActiveControlChange := nil;
Gostei + 0
26/08/2005
Massuda
procedure TFrMenus.FormCreate(Sender: TObject); begin Screen.OnActiveControlChange := controlChange; end; procedure TFrMenus.FormDestroy(Sender: TObject); begin Screen.OnActiveControlChange := nil; end; procedure TFrMenus.controlChange(sender : TObject); begin // não sei bem onde o teste deveria ser feito... if Assigned(ActiveControl) then begin if Assigned(campoAnt) then campoAnt.Color := clWindow; if ActiveControl is TEdit then begin TEdit(ActiveControl).Color := clBackground; //clInfoBk; campoAnt := TEdit(ActiveControl); end else campoAnt := nil; end; end;
Gostei + 0
26/08/2005
Porty
Screen.OnActiveControlChange := nil;
Coloquei esse código no OnDestroy é já funciona sem erros.
Se eu quiser usar esse código para todas a aplicação com faria? Pois estar a repetir este código em todos os forms é um pouco chato, claro que podia usar a herança mas como já tenho muitos forms já criados não queria estar a mexer.
Gostei + 0
03/09/2005
Porty
Screen.OnActiveControlChange := nil;
Coloquei esse código no OnDestroy é já funciona sem erros.
Se eu quiser usar esse código para todas a aplicação com faria? Pois estar a repetir este código em todos os forms é um pouco chato, claro que podia usar a herança mas como já tenho muitos forms já criados não queria estar a mexer.[/quote:13b03239b0]
Gostei + 0
21/11/2005
Mysys
seguinte esse codigo funciona perfeitamente em forms normais mais eu uso MDI e ele nao funciona ..
[b:92b8a58d51]
alguem sabe de algum codigo prar mudar a cor do edit,DBEdit focado para form MDI..???[/b:92b8a58d51]
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)