Fórum Principal.OnKeyDown. Erro!!! #239336
23/06/2004
0
------------------------------ERRO---------------------------------
[Error] Unit_destravar.pas(89): Incompatible types: ´TKeyEvent´ and ´procedure, untyped pointer or untyped parameter´
---------------------------------------------------------------------
----------------------------CODIGO-------------------------------
public
{ Public declarations }
fecha: Boolean;
procedure TDestravar.Button1Click(Sender: TObject);
var
OldValue : LongBool;
Key:word;
begin
Principal.OnKeyDown := if GetStateK (VK_LMENU) And (Key = VK_F4) Then fecha:=true;
end;
end.
---------------------------------------------------------------------------
aguem poderia me ajudar com a solução????
Mahdak
Curtir tópico
+ 0Posts
24/06/2004
Beppe
Coloque o [if GetKeyStateK(...] em um método(função na sua classe), e use este método como manipulador de evento OnKeyPress.
Gostei + 0
24/06/2004
Mahdak
abraços!
{FUNCAO RESPONSAVEL PELO BLOQUEIO DO ALT+F4 }
Function GetStateK (Key: integer): boolean;
begin
Result := Odd (GetKeyState (Key));
end;
procedure TPrincipal.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
If GetStateK (VK_LMENU) And (Key = VK_F4) Then // ALT+F4
fecha := False; // ALT+F4
end;
-----------------AQUI ESTA AQUELE ERRO!!!-----------------------------------
procedure TDestravar.Button1Click(Sender: TObject);
begin
Principal.OnKeyDown := if GetStateK (VK_LMENU) And (Key = VK_F4) Then fecha:=true; // habilita o alt+f4
end;
Gostei + 0
24/06/2004
Paulo_amorim
Você quer que o código do OnKeyDown seja esse que você escreveu né
Então crie uma procedure ´Teste´
procedure Form1.Teste(Sender: TObject; var Key: Word; Shift: TShiftState); begin if GetStateK (VK_LMENU) And (Key = VK_F4) Then fecha:=true; // habilita o alt+f4 end;
Agora vá ao OnKeyDown do form e escolha essa procedure que vc criou...pronto!
Você também pode fazer em tempo de execução, p.ex. no OnActivate do form:
Self.OnKeyDown := Teste;
Espero que ajude
Até+
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)