Autor Téma: Zrušenie ShortCut v ActionManager  (Přečteno 230 krát)

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4445
  • Karma: 39
    • Verze Delphi: XE7 professional
Zrušenie ShortCut v ActionManager
« kdy: 24-04-2019, 10:41:09 »
Mám túto funkciu a teraz si nie som istý, či je správna. Či mi likviduje ShortCut.
Kód: Delphi [Vybrat]
  1. procedure TCustomNavigator.DestroyShortCut;
  2. var
  3.   I, K: Integer;
  4.   BarItem: TActionBarItem;
  5.   Client: TActionClientItem;
  6.   Action: TAction;
  7. begin
  8.   for I := 0 to FActManager.ActionBars.Count -1 do
  9.   begin
  10.     BarItem := FActManager.ActionBars.ActionBars[I];
  11.      if BarItem.ActionBar <> nil then
  12.     begin
  13.       for K := 0 to BarItem.Items.Count -1 do
  14.       begin
  15.         Client := BarItem.Items[K];
  16.          if Client.Action <> nil then
  17.         begin
  18.           Action := TAction(Client.Action);
  19.            if Action <> nil then
  20.             Client.ShortCut := TextToShortCut('');
  21.         end;      end;    end;  end;end;
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4445
  • Karma: 39
    • Verze Delphi: XE7 professional
Re:Zrušenie ShortCut v ActionManager
« Odpověď #1 kdy: 24-04-2019, 11:01:10 »
A takto ich vytváram
Kód: Delphi [Vybrat]
  1. procedure TCustomNavigator.SetShortCut;
  2. begin
  3.   if FActToolBar.CanFocus then
  4.   begin
  5.     FActions[naFirst].ShortCut := ShortCut(Word('F'), [ssCtrl]);
  6.     FActions[naInsert].ShortCut := TextToShortCut('Ins');
  7. ...
  8.    end;
  9. end;
  10.  
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4445
  • Karma: 39
    • Verze Delphi: XE7 professional
Re:Zrušenie ShortCut v ActionManager
« Odpověď #2 kdy: 24-04-2019, 11:06:45 »
Opäť klasika. Inšpirovaný priradením som to prerobil na
Kód: Delphi [Vybrat]
  1. FActions[naFirst].ShortCut := TextToShortCut('');
  2. ....
a zdá sa, že to funguje.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline vandrovnik

  • Guru
  • *****
  • Příspěvků: 781
  • Karma: 43
    • Verze Delphi: 10.3
Re:Zrušenie ShortCut v ActionManager
« Odpověď #3 kdy: 24-04-2019, 11:23:02 »
Používal jsem
Kód: Delphi [Vybrat]
  1. aOdstranit.ShortCut:=0;

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4445
  • Karma: 39
    • Verze Delphi: XE7 professional
Re:Zrušenie ShortCut v ActionManager
« Odpověď #4 kdy: 25-04-2019, 08:12:20 »
scNone poznajú aj XE7
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.