суббота, 27 апреля 2013 г.

Что я бы ещё поправил бы в VCL если бы "Borland" дал бы мне доступ к их SVN


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;

-- иначе получается - "глупо", да и тратятся лишние вычислительные ресурсы.

Комментариев нет:

Отправить комментарий