Fórum Desabilitar teclas alt F4 #170535

21/07/2003

0

Alguém poderia me ajudar com esta dúvida, preciso desabilitar as teclas Alt + F4


Flaviodayan

Flaviodayan

Responder

Posts

21/07/2003

Ivonei

Esta dica eu peguei na net e não testei.

function TForm1.GetStateK(Key: integer): boolean;
begin
Result := Odd(GetKeyState(Key));
end;

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
//VK_LMENU = Alt esquerdo
if GetStateK(VK_LMENU) and (Key = VK_F4) then begin
fecha := false;
ShowMessage(´Clique em Fechar para sair do programa´);
end;
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if not fecha then
Action := caNone
else
Action := caFree;
end;

procedure TForm1.BtnFecharClick(Sender: TObject);
begin
fecha := true;
Close;
end;

Na seção public criar uma variável fecha do tipo boolean.

Outra opção:
Você pode simplesmente no evento OnShow do form passar a variável fecha para false e somente se o usuário clicar no botão fechar o form será fechado. Assim não é preciso verificar se as teclas estão pressionadas, no caso a funtion GetStateK e a procedure FormKeyDown são desnecessárias.

Até +


Responder

Gostei + 0

21/07/2003

Delmar

No evento OnkeyDown do form

if key=vk_f4 then
key:=0;

Não esqueça de setar a propriedade KeyPreview do form para true
Um abraço


Responder

Gostei + 0

21/07/2003

Flaviodayan

Esta dica eu peguei na net e não testei. function TForm1.GetStateK(Key: integer): boolean; begin Result := Odd(GetKeyState(Key)); end; procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin //VK_LMENU = Alt esquerdo if GetStateK(VK_LMENU) and (Key = VK_F4) then begin fecha := false; ShowMessage(´Clique em Fechar para sair do programa´); end; end; procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin if not fecha then Action := caNone else Action := caFree; end; procedure TForm1.BtnFecharClick(Sender: TObject); begin fecha := true; Close; end; Na seção public criar uma variável fecha do tipo boolean. Outra opção: Você pode simplesmente no evento OnShow do form passar a variável fecha para false e somente se o usuário clicar no botão fechar o form será fechado. Assim não é preciso verificar se as teclas estão pressionadas, no caso a funtion GetStateK e a procedure FormKeyDown são desnecessárias. Até +



Valeu!!!!!
Funcionou !!


Responder

Gostei + 0

21/07/2003

Flaviodayan

No evento OnkeyDown do form if key=vk_f4 then key:=0; Não esqueça de setar a propriedade KeyPreview do form para true Um abraço



Obrigado pela ajuda!!!


Responder

Gostei + 0

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

Aceitar