Fórum TDBEdit(Sender).Color := clYellow ??? #238097
16/06/2004
0
olha só,
eu tenho um sistema desenvolvido, agora o cliente pediu pra mim mudar a cor do foco dos edit e DBedit quando receber o foco e ao sair do edit, eu uso erança de formulários, teria alguma forma de implementar no meu formulário pai pra todos os decendentes de
TCustomEdit mudar a cor ao receber o foco ?
tipo um onEnter e OnExit de todos os decendentes de TCustomEdit.
Seria esse codigo que seria implementado.
TCustomEdit(Sender).Color := clYellow;
Obrigada !
Renata Coimbra
Renata Coimbra
Curtir tópico
+ 0Posts
16/06/2004
Xanatos
Gostei + 0
16/06/2004
Jrjoliv2003
Na parte da manhão fiz a mesma pergunta e me respondeream isso:
selecione todos os DBEdits do seu formulario e va no evento OnEnter e digite
TDBEdit(Sender).Color := clYellow;
depois no evento onExit digite
TDBEdit(Sender).Color := clWindow;
Eu não tive tempo de testar!!!
Se vc testar ainda hoje e funcionar me retorne por favor!!!
JR.
Gostei + 0
16/06/2004
Emerson Nascimento
type
    TfrmAncestral = class(TForm)
        {...}
    private
        {...}
    public
        ComponAnt: TComponent;
        procedure ControlChange(Sender: TObject);
        {...}
    end;
agora, no onActivate do seu form, coloque:
procedure TfrmAncestral.FormActivate(Sender: TObject);
begin
    Screen.OnActiveControlChange := ControlChange;
end;
e essa é a procedure em si:
procedure TfrmAncestral.ControlChange(Sender: TObject);
begin
    if Assigned(ComponAnt) then
        TDBEdit(ComponAnt).Color := clWindow; // cor sem foco
    if (ActiveControl is TEdit) or
          (ActiveControl is TDBEdit) or
          (ActiveControl is TDBCheckBox) or
          (ActiveControl is TDBComboBox) or
          (ActiveControl is TComboBox) or
          (ActiveControl is TDBLookupComboBox) or
          (ActiveControl is TEdit) then
    begin
        TDBEdit(ActiveControl).Color := clYellow; // cor com foco
        ComponAnt := ActiveControl;
    end;
end;
atente-se ainda para, no evento OnDeactivate, desligar esse comportamento:
procedure TfrmAncestral.FormDeactivate(Sender: TObject);
begin
    Screen.OnActiveControlChange := nil;
end;
veja se isso resolve o seu problema.
Gostei + 0
17/06/2004
Renata Coimbra
usei essa procedure no meu fomrulário pai, funciona maravilhosamente bem, eu até coloquei outros objetos na lista e funciona tudo,
todos os formulários filhos estão funcionando bem, mais tá dando um erro ao sair de qualquer um formulário filho, dar um erro de memoria maluco. access violation adress etc etc...
o que eu posso fazer pra sanar isso ?
Obrigada pela atenção !
Renata Combra.
Gostei + 0
17/06/2004
Xanatos
Emerson :!:
Gostei + 0
17/06/2004
Renata Coimbra
Esquecir de falar, eu uso MDI, todos os formulários herdados funciona o foco mais na hora de sair dar o erro de memoria !
o que pode ser ?
Obrigada.
Renata Combra.
Gostei + 0
17/06/2004
Emerson Nascimento
Gostei + 0
17/06/2004
Xanatos
Gostei + 0
17/06/2004
Renata Coimbra
eu só mudei para ele desligar o ControleChange de onDeactivate para onClose e parou de dar erro.
Obrigada pela atenção !
Renata Coimbra.
Gostei + 0
17/06/2004
Emerson Nascimento
Gostei + 0
17/06/2004
Jrjoliv2003
Vivendo e aprendendo!
JR.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)