Delphi: Funktionstasten wie F1, F2, F3 und F4 funktionieren nicht im FormKeyDown Event
Frage von Gast | Letztes Update am 01.07.2021 | Erstellt am 16.04.2012
In dem FormKeyDown Event möchte ich auf die Funktionstasten (F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11 und F12) reagieren (HotKey) und eine entsprechende Aktion zuweisen. Dafür benutze ich folgenden Code:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if Key = VK_F1 then Funktion1(); if Key = VK_F2 then Funktion2(); if Key = VK_F3 then Funktion3(); //usw end;
Problem: Aus irgendeinem Grund funktioniert es nicht. Offenbar wird beim Drücken von F1 nicht einmal das FormKeyDown Event der Form aufgerufen. Was mache ich falsch?! Ich habe den Code so oft überprüft und mit allen anderen Virtual Keys wie VK_SPACE und so funktioniert es einwandfrei, nur mit den Funktionstasten nicht!
Ähnliche Themen
Delphi: Event Reihenfolge einer Form - Von OnCreate bis OnDestroy
Info | 1 Kommentar
jQuery: Unterschied zwischen "return false" und "event.preventDefault()"
Info | 0 Kommentare
jQuery: Tasten auf Tastatur Aktion zuweisen (Keyboard Event)
Tipp | 0 Kommentare
Delphi: RadioButton.Checked oder CheckBox.Checked ändern ohne OnClick-Event auszulosen
Tipp | 0 Kommentare
Delphi: Standard (OnClick) Event für eigene Komponente
Tipp | 0 Kommentare
Delphi/Lazarus: Ist die ALT, SHIFT oder STRG-Taste gedrückt?
Tutorial | 0 Kommentare
Delphi/Lazarus: Nur Zahlen im Edit-Feld erlauben
Tipp | 0 Kommentare
Wichtiger Hinweis
Bitte beachten Sie: Die Beiträge auf askingbox.de sind Beiträge von Nutzern und sollen keine professionelle Beratung ersetzen. Sie werden nicht von Unabhängigen geprüft und spiegeln nicht zwingend die Meinung von askingbox.de wieder. Mehr erfahren.
Jetzt mitmachen
Stellen Sie Ihre eigene Frage oder schreiben Sie Ihren eigenen Artikel auf askingbox.de. So gehts.
Dein Code kann genauso bleiben wie er ist, probiere einfach mal das Programm außerhalb der IDE zu starten.
Wenn du das Programm innerhalb von Delphi startest, sind die Funktionstasten von Delphi belegt, um den Programmablauf und das Debugging zu steuern, deswegen kann man im Programm nicht über das OnKeyDown Event auf die Tasten zugreifen.
Wenn du das Programm aber eigenständig außerhalb von Delphi startest, sollte es gehen.
Letztes Update am 01.07.2021 | Erstellt am 04.05.2012
Ich hatte das gleiche Problem! Und das ist die Lösung! Vielen vielen Dank!
Ohne deinen Tipp hätte ich es nie hinbekommen!
29.06.2021 um 23:17
Mit Delphi Sydney ist das keine Opiton: F1 wird auch „außerhalb“ ignoriert.
30.01.2021 um 19:46
Dann liegt es vermutlich an etwas anderem.
Hast du zum Beispiel vielleicht vergessen KeyPreview auf true zu stellen?
31.01.2021 um 20:12