Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - WM_KEYDOWN: Shift und Ctrl?
Andreas Pfau - Mo 30.12.02 11:16
Titel: WM_KEYDOWN: Shift und Ctrl?
Hallo Leute,
wieder mal ein Prob. Ich habe eine Anwendung, die auf dir cursortasten reagieren soll. Ich verarbeite alle Tasten mit TForm.OnKeyDown. Um auch auf Cursortasten zu reagieren, fange ich Wm_KeyDown mit TApplicationEvents.OnMessage ab und leite sie an OnKeyDown weiter (damit alles zentral verarbeitet wird).
Aber: kann ich aus TMsg, was ja bei Wm_KeyDown gesendet wird, den Status von Shift un Ctrl herausfinden? Momentan verwende ich dazu GetKeyState(), aber geht das auch direkt?
Dev4u.ch - Mo 30.12.02 14:11
Füg folgenden Code bei Form1.ONKeyDown ein
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if key = VK_SHIFT then showmessage('Shift');
if key = VK_CONTROL then showmessage('Control');
end; |
gruss
Andreas Pfau - Mo 30.12.02 15:37
Sorry... das hatte ich nicht gemeint... :wink:
Was ich wollte war: wenn eine Taste gedrückt wird, wie finde ich dann mittels der von windows gesendeten Nachricht raus, ob gleichzeitig Shift und/oder Ctrl gedrückt wurde? Klar, mit GetKeyState geht das. Aber kann ich auch aus der TMsg-Struktur den Shift-/Ctrl-Status auslesen?
Dev4u.ch - Mo 30.12.02 15:41
ok..
ich versuchs nochmal..
Dies ist ein Beispielcode der erkannt ob Shift+A zu gleichen Zeit gedrückt werden..
Quelltext
1: 2: 3: 4: 5: 6: 7:
| procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if (Shift = [ssCtrl]) and (Key = 65) then ShowMessage('Strg + A gedrückt');
end; |
vielleicht musst du von Form1 das Keypreview auf True setzten..
Tino - Mo 30.12.02 17:02
| Dev4u.ch hat folgendes geschrieben: |
| ich versuchs nochmal.. |
ich denke das wird Andreas auch nicht helfen.
| Andreas Pfau hat folgendes geschrieben: |
| Aber kann ich auch aus der TMsg-Struktur den Shift-/Ctrl-Status auslesen? |
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!