Desabilitar teclas alt F4
Alguém poderia me ajudar com esta dúvida, preciso desabilitar as teclas Alt + F4
Flaviodayan
Curtidas 0
Respostas
Ivonei
21/07/2003
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é +
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
Delmar
21/07/2003
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
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
Flaviodayan
21/07/2003
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 !!
GOSTEI 0
Flaviodayan
21/07/2003
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!!!
GOSTEI 0