Sair de um único controle em um form
13/06/2008
0
Estou com uma dúvida boba e não sei como sair dela.
Tenho apenas um MaskEdit num form para entrada de data e gostaria de, após inserir essa data, o form fosse fechado. Testei no evento onKeyPress com o código :
frmDataDevolucao.Close;
Mas o form é automaticamente fechado porque o maskedit mesmo sem valor nenhum, contém 10 espaços na máscara ´__/__/____´.
Como resolver isso?!
Obrigado.
Microbios
Posts
13/06/2008
Brunodsr
1. Valida se a data é válida;
2. Caso nao seja, informa ao usuario e mantem o foco no campo;
3. Caso a data seja valida, fecha o form.
Espero ter ajudado.
13/06/2008
Microbios
o onexit é disparado quando o controle PERDE o foco e no caso só há um controle no formulário, portanto ao terminar de preencher a data o foco permanece no controle, não há perda do foco. O que eu quero é exatamente isso: sair validando a data e fechando o form, com um só controle no form sem a passagem de foco pra outro contorle.
:wink:
13/06/2008
Brunodsr
Desculpe o post anterior. Nao tinha entendido.
Vc ja pensou em obrigar o cara a pressionar ENTER para confirmar o campo?
Tipo:
if key = #13 then ValidaData;
Espero ter ajudado
13/06/2008
Brunodsr
if key = #13 then ValidaData;
Desculpe.. Poe isso no keyPress do campo.
13/06/2008
Microbios
O código que você citou seria o mais apropriado se eu não usasse um código em meu MDI que faz a troca do TAB por ENTER em toda a aplicação. Não sei por qual motivo, esse código [b:0722808d36]if key = #13 then [/b:0722808d36] no evento onkeypress não funciona. :lol: Qualquer outra tecla que eu testo, funciona. Menos o Enter. Vou continuar tentando achar uma solução. Por enquanto agradeço às sugestões dadas. :wink:
14/06/2008
Pestana_
If (Length(txtDataAtual.Text) = 10) and (txtDataAtual.Text <> ´__/__/____´) then frmDataDevolucao.Close;
espero ter ajudado!
14/06/2008
Marco Salles
[b:d6ae2c3074]!99/99/9999;1;_[/b:d6ae2c3074]
a a Propriedade [u:d6ae2c3074]EditText[/u:d6ae2c3074], ao Inves do [u:d6ae2c3074]Text [/u:d6ae2c3074]
No evento [b:d6ae2c3074]OnChage[/b:d6ae2c3074] Anterior
procedure TForm2.txtDataAtualChange(Sender: TObject); var data:TDateTime ; begin if trystrtodate(txtDataAtual.EditText,data) then close; end;
Clique aqui para fazer login e interagir na Comunidade :)
Inserção de url