Hogyan lehet Delphi7-ben egyszerre több gomb lenyomását lekérdezni?
Azt meg tudom csinálni, hogy pl. ha lenyomom a bal nyilat, akkor kiírja, hogy bal stb.
de ha egyszerre többet nyomok le, akkor az utolsót kiírja, és ha elengedem az egyiket, akkor egy kis késéssel kiírja a másikat
Szeretném tudni, hogy mely gombok vannak lenyomva egy időben!
Nekem így mutassa, de megpróbálom kiszedni belőle a lényget, szerintem jó lesz, kössz szépen!
{
  I would like to detect more than 2 keys being pressed within a form.
  For example I would like to know if the user pressed   time. The onkeydown seems to only check for one or two keys max but surely
  you can determine what keys are currently down.
}
// You can use GetKeyState:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  If ((GetKeyState(VK_CONTROL) AND 128)=128) and
     ((GetKeyState(VK_F5)      AND 128)=128) and
     ((GetKeyState(ord('8'))   AND 128)=128)
    then
      ShowMessage('CTRL+F5+8 Pressed');
end;
( Remember: Form1.Keypreview := TRUE )
// Or you can read the entire KeyBoard Status,
// and later check for the three keys:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
var
   KeybState: TKeyboardState;
begin
  GetKeyboardState(Teclado);
  If ( (KeybState[VK_CONTROL] and 128)=128 ) and
     ( (KeybState[VK_F5]      and 128)=128 ) and
     ( (KeybState[Ord('8')]   and 128)=128 )
    then
      ShowMessage('CTRL+F5+8 Pressed');
end;
Szia.
Nekem is, azt mutatja mint neked.
Itt egy másik : [link]
Google : delphi multiple keys pressed
Sok sikert
Üdv.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!