Pfeiltasten abfragen?
Pfeiltasten abfragen?
Ich finde im Eventmanager von Form KEyup and KeyDown, aber warum gibt es kein left and riht?
Muss man das dann händisch machen, doer bin ich nur zu blind die Option zu finden?
Hat jemand einen Codeschnipsel, wie man das handisch macht?
Irgenwie war da awas mit einer 0 und dann kommt der eigentlich Char?!
Muss man das dann händisch machen, doer bin ich nur zu blind die Option zu finden?
Hat jemand einen Codeschnipsel, wie man das handisch macht?
Irgenwie war da awas mit einer 0 und dann kommt der eigentlich Char?!
- Bullykiffer
- Beiträge: 24
- Registriert: Fr 9. Aug 2024, 19:44
- OS, Lazarus, FPC: Windows 11 (L 3.4.0 FPC 3.2.2)
- CPU-Target: Windows 64-Bit
- Wohnort: Nordvorpommern
Re: Pfeiltasten abfragen?
Hallo.
Ich glaube da hast du etwas falsch verstanden.
OnKeyDown wird ausgelöst,wenn du eine Taste drückst,
OnKeyUp wird dann meines Wissens ausgelöst,wenn du die Taste wieder loslässt
Deswegen gibt es auch kein Left oder Right, In den oben genannten Ereignissen,musst du selber auswerten,welche Taste gedrückt wurde und
wie du auf was reagierst
Cya de Helge.
Ich glaube da hast du etwas falsch verstanden.
OnKeyDown wird ausgelöst,wenn du eine Taste drückst,
OnKeyUp wird dann meines Wissens ausgelöst,wenn du die Taste wieder loslässt
Deswegen gibt es auch kein Left oder Right, In den oben genannten Ereignissen,musst du selber auswerten,welche Taste gedrückt wurde und
wie du auf was reagierst
Cya de Helge.
Re: Pfeiltasten abfragen?
ah ok, ja das macht Sinn:-)
Re: Pfeiltasten abfragen?
Kannst du so machen:
OnKeyUp geht auch, kommt aber erst beim Loslassen der Taste.
Code: Alles auswählen
uses LCLType....
procedure TForm1.FormKeyDown(Sender: TObject; var Key: word; Shift: TShiftState);
begin
if Shift = [] then
case Key of
VK_LEFT: Caption := 'Left';
VK_RIGHT: Caption := 'Right';
VK_UP: Caption := 'Up';
VK_DOWN: Caption := 'Down';
end;
end; - Zvoni
- Beiträge: 578
- Registriert: Fr 5. Jul 2024, 08:26
- OS, Lazarus, FPC: Windoof 10 Pro (Laz/FPC fixes)
- CPU-Target: 64Bit
- Wohnort: BW
Re: Pfeiltasten abfragen?
Ein ganz grosser Unterschied zwischen OnKeyDown und OnKeyUp:theo hat geschrieben: Di 3. Mär 2026, 20:05 Kannst du so machen:
OnKeyUp geht auch, kommt aber erst beim Loslassen der Taste.Code: Alles auswählen
uses LCLType.... procedure TForm1.FormKeyDown(Sender: TObject; var Key: word; Shift: TShiftState); begin if Shift = [] then case Key of VK_LEFT: Caption := 'Left'; VK_RIGHT: Caption := 'Right'; VK_UP: Caption := 'Up'; VK_DOWN: Caption := 'Down'; end; end;
Hälst du eine Taste gedrückt, feuert OnKeyDown wie bescheuert (halt so oft wie der Interrupt von der Tastatur ans OS gesendet wird).
OnKeyUp feuert pro Taste immer nur einmal (wobei ich mir gerade nicht sicher bin, ob OnKeyUp für alleinige SHIFT/STRG/ALT-Taste feuert)
Ein System sie alle zu knechten, ein Code sie alle zu finden,
Eine IDE sie ins Dunkel zu treiben, und an das Framework ewig zu binden,
Im Lande Redmond, wo die Windows drohn.
Eine IDE sie ins Dunkel zu treiben, und an das Framework ewig zu binden,
Im Lande Redmond, wo die Windows drohn.
Re: Pfeiltasten abfragen?
ah ok, ja danke.
Aber das bedeutet das das Beispiel nicht so gut geeignet wäre, mit FormKeyDown?
Wie würde man es eleganter lösen?
Aber das bedeutet das das Beispiel nicht so gut geeignet wäre, mit FormKeyDown?
Wie würde man es eleganter lösen?
Re: Pfeiltasten abfragen?
Warum?corado hat geschrieben: Di 10. Mär 2026, 23:20 Aber das bedeutet das das Beispiel nicht so gut geeignet wäre, mit FormKeyDown?
Es kommt darauf an, was du damit machen willst.
Das sagtest du bisher ja nicht.
Was ist hier nicht elegant?