Hallo Thomas,
man sollte vor dem Schlafengehen nicht mehr ins Forum schauen
Also das hat mich jetzt nicht ruhen lassen. Es sollte natürlich ausgeschlossen sein, dass Ctrl-P K als identisch mit Ctrl-K P erkannt wird. Die Gleichzeitigkeit ist nach meiner Einschätzung als relativ zu betrachten: Habe das mal an mir selbst ausgetestet. Es fällt einem im Eifer des Eintippens nicht wirklich auf, ob man die beiden ersten (also Ctrl und K) beide schon losgelassen hat, wenn der dritte Buchstabe gedrückt wird. Habe jetzt folgende Lösung, die mir etwas absonderlich erscheint. Aber sieh selbst...
Delphi-Quellcode:
procedure TfoTest9.FormKeyDown(Sender:TObject;var Key:Word;Shift:TShiftState);
var KeybState : TKeyboardState;
begin
if SSCtrl in Shift then
if Key=ord('P') then begin
GetKeyboardState(KeybState);
if KeybState[ord('K')] and 128=128 then begin
sm('Ctrl+K P'); // << ShowMessage für Tippfaule
//...
//..
//.
end;
end;
end;
Zuerst hatte ich es (natürlich?!) in anderer Reihenfolge (Test auf K und dann auf P) - aber nur so funktioniert es?! In dieser Version wird
nur Ctrl+K+P erkannt, nicht Ctrl+P+K. Die Gleichzeitigkeit (ich sagte es schon) erscheint mir unwichtig!
Vielen Dank für den Hinweis!
Gute Nacht aus Hamburg
Ralph