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;