function TCustomActionList.IsShortCut(var Message: TWMKey): Boolean;
var
I: Integer;
ShortCut: TShortCut;
ShiftState: TShiftState;
Action: TCustomAction;
begin
ShiftState := KeyDataToShiftState(Message.KeyData);
ShortCut := Menus.ShortCut(Message.CharCode, ShiftState);
if ShortCut <> scNone then
for I := 0 to FActions.Count - 1 do
begin
Action := FActions.List[I];
if (TObject(Action) is TCustomAction) then
if (Action.ShortCut = ShortCut) or (Assigned(Action.FSecondaryShortCuts) and
(Action.SecondaryShortCuts.IndexOfShortCut(ShortCut) <> -1)) then
begin
Result := Action.HandleShortCut;
if Result then Exit; {V} // - вот это мы дописали
end;
end;
Result := False;
end;
-- иначе получается - "глупо", да и тратятся лишние вычислительные ресурсы.
Комментариев нет:
Отправить комментарий