Einzelnen Beitrag anzeigen

Amateurprofi

Registriert seit: 17. Nov 2005
Ort: Hamburg
1.063 Beiträge
 
Delphi XE2 Professional
 
#10

AW: Shift + NumPadX erkennen

  Alt 31. Jul 2018, 21:16
Ich weiß ja nicht, was du machst, aber das hier funktioniert problemlos bei mir und das ist auch, wie man TShortcutEvent verwendet:
Delphi-Quellcode:
procedure TollesEvent(var Msg: TWMKey; var Handled: Boolean);
var
  ss: TShiftState;
begin
  ss := KeyDataToShiftState(Msg.KeyData);
  if ss = [ssShift] then
  if Msg.Charcode = VK_NUMPAD0 then // =96
  TueTolleSachen();
end;
Wenn man nicht weiß, was eigentlich los ist:
Delphi-Quellcode:
uses Menus;

procedure TollesEvent(var Msg: TWMKey; var Handled: Boolean);
var
  ss: TShiftState;
begin
  ss := KeyDataToShiftState(Msg.KeyData);
  Caption := IfThen(ssCtrl in ss, 'Strg+')
           + IfThen(ssShift in ss, 'Umsch+')
           + IfThen(ssAlt in ss, 'Alt+')
           + ShortCutToText(Msg.CharCode) + '/'
           + IntToStr(Msg.CharCode);
end;
Ich vermute "TollesEvent" ist "FormShortCut"
Hab deinen Code im FormShortCut unverändert eingefügt - und funktioniert nicht (bei Shift + NumPadX)
Unter "funktioniert" verstehe ich, um bei deinem erstgenannten Code zu bleiben, dass die Prozedur TueTolleSachen() ausgeführt wird, wenn ich Shift + Numpad1 (bei deinem Beispiel NumPad0) drücke.

Falls es dir entgangen ist:
So ziemlich genau das, was du vorschlägst mach ich in dem in #1 gezeigten FormShortcut.
Gruß, Klaus
Die Titanic wurde von Profis gebaut,
die Arche Noah von einem Amateur.
... Und dieser Beitrag vom Amateurprofi....
  Mit Zitat antworten Zitat