Fechar o form com ESC...dúvida
Tenho um Form normal com vários componentes TEdit. No envento OnKeyDown do Form coloquei o seguinte código:
if Key = VK_RETURN then
Close;
esse código funciona, porém se o foco estiver em um dos TEdit por exemplo, o form não fecha em ESC. Estou fazendo assim, seleciono todos os TEdit do form e aponto o evento OnKeyDown deles para o OnKeyDown do form...é assim que vcs fazem? tem outro jeito mais prático?
Otra coisa, quando aperto ESC o form é fechado e é gerado um BEEP, tem como remover isso?
Abraço!
if Key = VK_RETURN then
Close;
esse código funciona, porém se o foco estiver em um dos TEdit por exemplo, o form não fecha em ESC. Estou fazendo assim, seleciono todos os TEdit do form e aponto o evento OnKeyDown deles para o OnKeyDown do form...é assim que vcs fazem? tem outro jeito mais prático?
Otra coisa, quando aperto ESC o form é fechado e é gerado um BEEP, tem como remover isso?
Abraço!
Vispo
Curtidas 0
Respostas
Rjun
14/10/2006
Ative a propriedade KeyPreview do form para True.
GOSTEI 0
Mahdak
14/10/2006
além do que o rogerio sugerio voce pode estar fazendo o seguinte:
note que o problema que voce tinha quanto a dar o ESC com o componente edit focado some, por que voce diz:
se o controle ativo esta no edit entao
caso clique no esc,
sai....
if ((Screen.ActiveControl is TDBGrid) or (Screen.ActiveControl is TEdit) or (Screen.ActiveControl is TCombobox) or (Screen.ActiveForm.ClassName = ´TMessageForm´)) then begin case key of vk_Escape: R_Residuos.Close; end; end;
note que o problema que voce tinha quanto a dar o ESC com o componente edit focado some, por que voce diz:
se o controle ativo esta no edit entao
caso clique no esc,
sai....
GOSTEI 0
Rodc
14/10/2006
A maneira mais fácil para resolver o seu problema é colocar um TButton na tela para fechar o seu form e configurar as propriedades abaixo:
Caption: Fechar
Cancel: True
ModalResult: mrCancel
Quando você precionar o ESC, o form vai executar o evento do botão que estiver com a propriedade Cancel ativada. A propriedade ModalResult evita que você tenha que digitar algum código para fechar o form, pois o botão automaticamente vai enviar ao form o comando de fechar quando este for clicado.
Testa aí...
Caption: Fechar
Cancel: True
ModalResult: mrCancel
Quando você precionar o ESC, o form vai executar o evento do botão que estiver com a propriedade Cancel ativada. A propriedade ModalResult evita que você tenha que digitar algum código para fechar o form, pois o botão automaticamente vai enviar ao form o comando de fechar quando este for clicado.
Testa aí...
GOSTEI 0