Entwickler-Ecke
Sonstiges (Delphi) - Zwei tasten und mehr abfragen.
lemming - Do 15.08.02 14:02
Titel: Zwei tasten und mehr abfragen.
Hallo!
sicherlich ziemlich banal die Frage. Wie kann ich mehrere Tasten gleichzeitig abfragen. Ich mach das bissher mit Key: Char von Form1.OnKeyPress
Geht das auch besser?
Black Lightning - Do 15.08.02 16:11
ich hab mal so was in einem programm verwendet:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| type... procedure steuerung(Sender: TObject; var Key: Word; Shift: TShiftState); . . . implementation
procedure TForm1.steuerung(Sender: TObject; var Key: word; Shift: TShiftState); Begin . . if (ssalt in shift) and (ssCtrl in shift) then . . end; |
meinst du sowas?
mfg
Black Lightning
lemming - Fr 16.08.02 08:13
Ich meinte eingentlich zwei Tasten gleichzeitig gedrückt halten, wie z.B. a und gleichzeitig l etc. Ich machs jetzt mit OnKeyDown. da kann ich die Cursortastenabfragen. Trotzdem aber immer nur eine Taste :/
OregonGhost - Fr 16.08.02 08:44
In der Praxis wird ein User nicht zwei Tasten gleichzeitig drücken. Daher generiert Windows für jeden Tastendruck eine Extranachricht.
Ein üblicher Vorgang ist, ein array[0..255] of boolean zu nehmen, und im onkeydown dann array[key] auf true zu setzen und im keyup auf false. Dann musst du einen Schleifendurchlauf machen, um zu gucken, welche Tasten aktiv sind. So kannst du also zum Beispiel einfach abfragen, ob gerade a und l gedrückt sind.
lemming - Mo 19.08.02 10:18
Yeah danke! Das klappt.
Was für die FAQ:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19:
| procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); var keyCount: Integer; begin Label1.Caption := ''; KeyArray[key] := True;
for keyCount := 0 To 255 Do begin if KeyArray[keyCount] = True Then Label1.Caption := Label1.Caption + Chr(keyCount); end; end;
procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); begin KeyArray[key] := False; end; |
Tino - Mo 19.08.02 10:45
Hallo,
mit GetKeyboardState und GetKeyState kannst Du den Status auch abfragen.
Gruß
TINO
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!