Fórum Fechar form sem testar campos #275131

01/04/2005

0

Oi,

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

Repa

Responder

Posts

01/04/2005

Ariovaldo

Se vc testasse no Before post não solucionaria seu Problema?


Responder

Gostei + 0

01/04/2005

Gandalf.nho

Vc não pode testar em outro lugar se os campos estão preenchidos?


Responder

Gostei + 0

01/04/2005

Repa

Eu poderia testar os campos somente no botão incluir, mas então a pessoa teria que digitar tudo e depois os campos seriam validados, acho que assim fica ruim p/ o usuário, não?
Pq no x do form ele fecha normalmente sem passar no onexit dos campos?


Responder

Gostei + 0

01/04/2005

Ariovaldo

Renata e se vc colocasse um IF para que testasse a condição de Vazia somente quando estivesse no modo de Edição ou inserção, será que não resolveria


Responder

Gostei + 0

01/04/2005

Gandalf.nho

Talvez pq ao clicar no botão muda o foco dos campos e no X do form não. Que tipo de controle vc usa para o botão? Experimente usar um componente como o SpeedButton que não recebe foco para ver se ajuda.


Responder

Gostei + 0

01/04/2005

Repa

Renata e se vc colocasse um IF para que testasse a condição de Vazia somente quando estivesse no modo de Edição ou inserção, será que não resolveria


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...


Responder

Gostei + 0

01/04/2005

Vinicius2k

Olá Renata !
Talvez pq ao clicar no botão muda o foco dos campos e no X do form não. Que tipo de controle vc usa para o botão? Experimente usar um componente como o SpeedButton que não recebe foco para ver se ajuda.


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+


Responder

Gostei + 0

04/04/2005

Repa

Muito obrigada, Ariovaldo, Gandalf e Vinícius.. O speedbutton deu certinho e posso continuar testando os campos normalmente... :D


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar