Fórum Fechar form sem testar campos #275131
01/04/2005
0
Eu pesquisei aqui no fórum sobre esse problema e como não achei algo que solucionasse minha dúvida, resolvi postar esse tópico.
Tenho um form de cadastro c/ 3 campos edit obrigatórios (são testados no on exit se não estão vazios), o meu problema é que o botão fechar não fecha o form sem testar esses campos, já pensei em pôr o set focus no botão fechar sempre que abro o form, p/ o caso da pessoa desistir de cadastrar e querer sair assim que abre o form mas, se ela quiser começar a cadastrar e depois quiser fechar o form sem preencher todos os campos obrigatórios, acontecerá o mesmo problema. Pensei que talvez tivesse um jeito de testar no evento on exit desses campos se o botão fechar foi pressionado, mas tbém não sei como...
Agradeço qq ajuda.
Repa
Curtir tópico
+ 0Posts
01/04/2005
Ariovaldo
Gostei + 0
01/04/2005
Gandalf.nho
Gostei + 0
01/04/2005
Repa
Pq no x do form ele fecha normalmente sem passar no onexit dos campos?
Gostei + 0
01/04/2005
Ariovaldo
Gostei + 0
01/04/2005
Gandalf.nho
Gostei + 0
01/04/2005
Repa
O problema seria qdo a pessoa já estivesse fazendo a inclusão e quisesse desistir, não iria fechar a menos que digitasse algo nos campos obrigatórios...
Gandalf, eu uso o bitbtn e no evento onclick fecho as tabelas...
Gostei + 0
01/04/2005
Vinicius2k
Exatamente. Se for usado um controle sem foco, a validação pode ficar no OnExit.
Fora isso, que eu saiba, a validação deve ser somente no final... É assim que eu uso.
Sugestão :
Tire as operações adicionais do botão de fechar e coloque no evento OnClose do formulário. Desta forma vc irá garantir que de qualquer forma que form seja fechado, as operações sejam realizadas.
Vc pode usar dois artifícios se quiser manter a validação no OnExit :
1. Use um controle que não receba foco como sendo o botão de fechar... Um TSpeedButton, por exemplo.
2. Altere a propriedade [b:9532047cf2]KeyPreview[/b:9532047cf2] do Form para [b:9532047cf2]True[/b:9532047cf2] e trabalhe no OnKeyDown do Form com algo parecido com isto :
if Key = VK_ESCAPE then Close;
Se achar conveniente, só chame o close se o usuário confirmar que quer abandonar a edição...
São só idéias... o mais comum é que a validação de todos os campos seja feito apenas no final, realmente.
T+
Gostei + 0
04/04/2005
Repa
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)