Cancelar Saida do Componente

Delphi

01/12/2005

Quero fazer uma rotina que, no envento OnExit de um edit, o sistema faça uma pergunta ao usuário e, dependendo da resposta, o foco volta para o mesmo componente, ou seja, o OnExit não é processado.
Sei que eu poderia fazer um .setFocus, mas isso não me serve, pois o projeto tem outras variaveis que impedem de usar o setfocus.
Teria que ser algo assim:

if messagedlg(´sair´,mtconfirmation,[mbyes,mbno],0) = mrno then
abort;

Mas nesse caso o abort não faz nada, ou seja, o foco vai igual ao componente seguinte.

Alguém tem alguma idéia.


Armindo

Armindo

Curtidas 0

Respostas

Emerson Nascimento

Emerson Nascimento

01/12/2005

uma maneira de tornar genérico seria utilizar o parâmetro Sender do evento OnExit. ficaria assim:

if messagedlg(´sair´,mtconfirmation,[mbyes,mbno],0) = mrno then
  TWinControl(Sender).SetFocus;



GOSTEI 0
Armindo

Armindo

01/12/2005

Beleza!

Funcionou perfeitamente.

Obrigado.


GOSTEI 0
POSTAR