Udalosť OnKeyDown sa spustí iba pri stlačení klávesu, tzn., keď je stlačený, už táto udalosť neprebehne. Táto udalosť vo svojom parametri Key nevracia štatistiku stlačených klávesov, takže vykoná sa pri každom stlačenom klávese IBA raz. Aj keď sa možno zdá, že užívateľ stlačí naraz dve klávesy, ale vždy prebehne táto udalosť najprv s jednou virtuálnou hodnotou klávesy v parametri a potom s druhou ==> nedá sa použiť akási kompinácia pomocu AND. A okrem toho stále platí, že kláves by sa zaznamenal, iba ak na forme nie je nejaké tlačidlo, edit, memo, atď (pretože automaticky by dostali focus).
vama píše:
Este by som potreboval dalsi prikaz ktory by sa vykonal po pusteni tych dvoch tlacidiel
Namiesto ShowMessage to zobrazí do Memo, pre lepší prehľad, takže ho treba pridať na form.
Kód:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
if (not push_down) then
if ((GetKeyState(VK_LEFT) and 128 = 128) and (GetKeyState(VK_UP) and 128 = 128)) then
begin
push_down:= true;
Memo1.Lines.Add('stlačené');
end;
if (push_down) then
if ((GetKeyState(VK_LEFT) and 128 = 0) and (GetKeyState(VK_UP) and 128 = 0)) then
begin
push_down:= false;
Memo1.Lines.Add('pustené');
end;
end;
Premenná push_down je na začiatku inicializovaná ako false (napríklad v OnCreate formulára)