Array
(
)

Cancelar Saida do Componente

Armindo
   - 01 dez 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.


Emerson
   - 01 dez 2005

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

#Código

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



Armindo
   - 01 dez 2005

Beleza!

Funcionou perfeitamente.

Obrigado.