EderDias 0 Denunciar post Postado Novembro 30, 2007 Ola..tenhinha assim: Onde no edit ta assim no Onexit: procedure TForm1.Edit1Exit(Sender: TObject); begin if edit1.text = '' then begin showMessage('digite a nf'); edit1.setfocus; exit; end; end; Notem que eu tou forçando o camarada a digitar A NF. mas vamos supor que o usuario queira cancelar a operação, não queira mais continuar..CANCELAR Teria alguma forma de cancelar esta opção, TIPO um codigo mais fort que derruge o SETFOCUS ?? Grato Compartilhar este post Link para o post Compartilhar em outros sites
rvlira 0 Denunciar post Postado Dezembro 1, 2007 hum... acho que aqui você pode simplesmente adicionar uma variável boolean lá no private ou public do form. Mais ou Menos assim: var Form1: TForm1; IgnoraOnExit: Boolean; {...} //>>No OnCreate do Form setamos para False procedure TForm1.FormCreate(Sender: TObject); begin IgnoraOnExit := False; end; //>>Código do OnExit ficaria assim procedure TForm1.Edit1Exit(Sender: TObject); begin if not IgnoraOnExit then if Edit1.Text = '' then begin ShowMessage('digite a nf'); Edit1.SetFocus; Exit; end; end; //>>Código do botão cancelar procedure TForm1.btnCancelarClick(Sender: TObject); begin IgnoraOnExit := True; end; Dessa forma ele vai chamar o OnExit, mas não vai realizar a validação. t+! Compartilhar este post Link para o post Compartilhar em outros sites
EderDias 0 Denunciar post Postado Dezembro 3, 2007 carinha..obrigado em ajudar mas não deu certo http://forum.imasters.com.br/public/style_emoticons/default/natal_sad.gif var Form1: TForm1; IgnoraOnExit: Boolean; implementation {$R *.DFM} procedure TForm1.Edit1Exit(Sender: TObject); begin if not IgnoraOnExit then if Edit1.Text = '' then begin showMessage('digite a nf'); edit1.setfocus; exit; end; end; procedure TForm1.FormCreate(Sender: TObject); begin IgnoraOnExit := False; end; end. ele insiste e não quebra o setfocus!! http://forum.imasters.com.br/public/style_emoticons/default/natal_sad.gif Grato Compartilhar este post Link para o post Compartilhar em outros sites
rvlira 0 Denunciar post Postado Dezembro 3, 2007 Você passou a variável IgnoraOnExit para True quando o usuário pressiona o botão Cancelar? Se em nenhuma parte do código você passar essa variável para True, então realmente ele vai sempre validar o OnExit. Espero sua resposta para que possa te ajudar. Caso não consiga, eu faço um projeto de exemplo e mando, ok? t+! Compartilhar este post Link para o post Compartilhar em outros sites
EderDias 0 Denunciar post Postado Dezembro 3, 2007 Você passou a variável IgnoraOnExit para True quando o usuário pressiona o botão Cancelar? Se em nenhuma parte do código você passar essa variável para True, então realmente ele vai sempre validar o OnExit. R.: Oba...perdão....na correria acabei não colocando pra TRUE(..hehehe..ai não iria funcionar mesmo...) ai fechou deu certinho..... valew...mto grato pela dica e ajuda.. abraços http://forum.imasters.com.br/public/style_emoticons/default/natal_smile.gif Compartilhar este post Link para o post Compartilhar em outros sites