Fórum Fechar o form com ESC...dúvida #331141

14/10/2006

0

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!


Vispo

Vispo

Responder

Posts

15/10/2006

Rjun

Ative a propriedade KeyPreview do form para True.


Responder

Gostei + 0

15/10/2006

Mahdak

além do que o rogerio sugerio voce pode estar fazendo o seguinte:

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


Responder

Gostei + 0

16/10/2006

Rodc

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


Responder

Gostei + 0

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

Aceitar