Entwickler-Ecke
Sonstiges (Delphi) - Tastenkombinatinen
Peter2002 - Di 22.10.02 08:20
Titel: Tastenkombinatinen
Wie kann ich abfragen, ob Shift + Funktionstaste gedrückt wurde?
Danke
AndyB - Di 22.10.02 08:44
In OnKeyDown/OnKeyUp/OnMouseDown/OnMouseMove/OnMouseUp kannst du mit
if ssShift in Shift then ...den prüfen, ob die Shift-Taste gedrückt wurde.
Ansonsten kann man mit dieser Anweisung zu jedem Zeitpunkt den Shift-Status abfragen.
Quelltext
1: 2: 3: 4:
| function IsShiftPressed: Boolean; begin Result := GetAsyncKeyState(VK_SHIFT) and $80 <> 0; end; |
Peter2002 - Di 22.10.02 08:58
Also, ich habs mal mit
Quelltext
1:
| if (ssShift in Shift) and (key = vk_F8) then ShowMessage('F20'); |
versucht ... Die Meldung kommt nie
Wenn ich nur den Shift-Status abfrage, dann kommt die Meldung, nimm ich aber mein F8 dazu, gehts nimmer :?!?:
LCS - Di 22.10.02 09:35
Hi
also bei mir funktioniert das einwandfrei. Poste doch mal die ganze Prozedur.
Gruss Lothar
AndyB - Di 22.10.02 09:37
Also bei mit funktioniert der Code im OnKeyDown Ereignis des Formulars.
Peter2002 - Di 22.10.02 11:30
Bei mir funktioniert der von mir vhorhin gepostete Code nur im OnKeyUp.
Im OnKeyDown nicht. Warum?
mk2 - Di 22.10.02 12:35
@ peter 2002
ich glaub der grund warum das bei dir nicht funktioniert, ist das du komponenten, wie buttons oder so was auf deinem formular hast. Sobald die da sind, benötigt delphi bestimmte tasten (wie z.B. Tab, Cursor und wahrscheinlisch auch shift) um diese komponenten zu steuern (focus setzen etc) und löst für diese tasten kein onkeydown mehr aus.
Ich hab aber leider auch keine lösung dafür außer halt statt onkeydown onkeyup zu nehmen.
mfg mk2
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!