TDBEdit(Sender).Color := clYellow ???
Olá Pessoal !
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
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
Curtidas 0
Respostas
Xanatos
16/06/2004
Bom...acho que se voce tiver um TCustomEdit no form pai... voce só associaria esse evento nos filhos!!! assim nao serve?
GOSTEI 0
Jrjoliv2003
16/06/2004
Renata..
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.
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
Emerson Nascimento
16/06/2004
crie uma rotina para isso chamada, por exemplo, ControlChange. vamos ao exemplo.
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.
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
Renata Coimbra
16/06/2004
Olá, bom dia pra todos !
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.
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
Xanatos
16/06/2004
Muito legal essa dica! eu testei e funcionou perfeitamente!!! Valeu
Emerson :!:
Emerson :!:
GOSTEI 0
Renata Coimbra
16/06/2004
Emerson !
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.
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
Emerson Nascimento
16/06/2004
vc não pode esquecer de ´desligar´ o ControlChange antes de fechar ou desativar o form.
GOSTEI 0
Xanatos
16/06/2004
Eu tambem uso MDI e nao deu problema!!! 8)
GOSTEI 0
Renata Coimbra
16/06/2004
emerson.en
eu só mudei para ele desligar o ControleChange de onDeactivate para onClose e parou de dar erro.
Obrigada pela atenção !
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
Emerson Nascimento
16/06/2004
disponham.
GOSTEI 0
Jrjoliv2003
16/06/2004
Muito Show!!!
Vivendo e aprendendo!
JR.
Vivendo e aprendendo!
JR.
GOSTEI 0