Fórum Desabilitar teclas alt F4 #170535
21/07/2003
0
Flaviodayan
Curtir tópico
+ 0Posts
21/07/2003
Ivonei
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é +
Gostei + 0
21/07/2003
Delmar
if key=vk_f4 then
key:=0;
Não esqueça de setar a propriedade KeyPreview do form para true
Um abraço
Gostei + 0
21/07/2003
Flaviodayan
Valeu!!!!!
Funcionou !!
Gostei + 0
21/07/2003
Flaviodayan
Obrigado pela ajuda!!!
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)