Problemas ao perder foco do componente.

Delphi

30/05/2005

Galera

Gostaria de fazer o seguinte em minha aplicação:

Quando perder o foco do componente DbEdit1 na janela Cadastro, carregar uma janela de consulta e nesta escolher o nome do cliente e carrega-lo para a janela a qual foi chamado.
Bom, isto esta funcionando mas tenho um problema ao clicar no botão fechar da janela principal (ele chama a janela de consulta novamente). Agora não sei como resolver. para isto estou usando o seguinte código.

Componente DbEdit1 - Events: OnExit.

If DbEdit1.text = ´´ then
begin
try
Application.createform(TFrmPesquisa, FrmPesquisa);
FrmPesquisa.ShowModal;
finally
FrmPesquisa.Free;
end;
end;

No Evento OnKeyPress do formulário de cadastro estou usando o seguinte código.

if key = #13 then
begin
key := 0;
perform(WM_NextDlgCtl, 0, 0);
end;

(Substituir a tecla Tab por Enter).

Alguem teria assim uma dica de como resolver isto, ou comentar uma opção diferente para fazer isto.

Agradeço a todos que ajudarem.

Valnei


Objetivacreator

Objetivacreator

Curtidas 0

Respostas

Sremulador

Sremulador

30/05/2005

você pode fazer um teste ao sair tipo if ed1.focused then ....


GOSTEI 0
Aroldo Zanela

Aroldo Zanela

30/05/2005

Colega,

Use o evento OnValidade do TField associado ao objeto dbEdit1 ou beforepost ao invés de On Exit no contexto apresentado.


GOSTEI 0
Marco Salles

Marco Salles

30/05/2005

Problea com foco é sempre um problema... Voce acha que reolve de um jeito mas depois verifica que não é bem assim

Se eu entendi bem , seu problema ocorre quando voce Clica no botão Fechar..

Bom, isto esta funcionando mas tenho um problema ao clicar no botão fechar...


ele chama a janela de consulta novamente


Ele esta fazendo corretamente...

Acho que a simples instrução no codigo do seu evento OnExit Pode Resolver:

if not NomeDoBotaoFechar.Focused Then
begin
  If DbEdit1.text = ´´ then 
    begin 
      try  
        Application.createform(TFrmPesquisa, FrmPesquisa); 
        FrmPesquisa.ShowModal; 
      finally 
        FrmPesquisa.Free; 
    end;
end; 
end; 



GOSTEI 0
POSTAR