Cancelar Saida do Componente

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

Respostas

01/12/2005

Emerson

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

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



Responder Citar

01/12/2005

Armindo

Beleza!

Funcionou perfeitamente.

Obrigado.


Responder Citar