Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   [gelöst] TActionlist und vergebene Shortcuts (https://www.delphipraxis.net/169424-%5Bgeloest%5D-tactionlist-und-vergebene-shortcuts.html)

dunningkruger 18. Jul 2012 20:35


[gelöst] TActionlist und vergebene Shortcuts
 
Gibt es/kennt jemand eine Möglichkeit, sich alle in einer TActionlist bereits vergebenen Shortcuts anzeigen zu lassen? Irgendwo sollten die doch in "menschenlesbarer Form" abgespeichert sein?

Habe hier ein Delphi 5 ohne irgendwelche installierten "Experten".

Danke für weiterführende Tipps!

Edit: Bin gerade auf die Idee gekommen, mir eine *.DFM mit SynWrite anzuschauen. Da kann man nach "shortcut" suchen lassen (und sich auch die Anzahlt der Fundstellen - 92 - anzeigen lassen).

Blöderweise werden die Shortcuts in der DFM als Zahl codiert angezeigt.

=> Wie rechnet man nun 112 in F1 und 24655 in Umsch+Strg+O (ist ein Oh, keine Null) um?

Dann könnte ich mir ja einen Parser für *.DFMs basteln...

@sx2008: Danke, werde ich testen!

sx2008 18. Jul 2012 20:49

AW: TActionlist und vergebene Shortcuts
 
Ungetestet:

Delphi-Quellcode:
function GetShortcutsFromActionlist(ac:TActionList):string;
var
  i : Integer;
  a : TCustomAction;
begin
  result := '';
  for i := 0 to ac.ActionCount-1 do
  begin
    if ac.Actions[i] is TCustomAction then
    begin
      a := TCustomAction(ac.Actions[i]);
      if a.ShortCut <> 0 then
        result := result + ShortCutToText(a.ShortCut) +',';
  end;
end;

dunningkruger 18. Jul 2012 21:21

AW: TActionlist und vergebene Shortcuts
 
Zitat:

Zitat von sx2008 (Beitrag 1175127)
Ungetestet:

Delphi-Quellcode:
function GetShortcutsFromActionlist(ac:TActionList):string;
var
  i : Integer;
  a : TCustomAction;
begin
  result := '';
  for i := 0 to ac.ActionCount-1 do
  begin
    if ac.Actions[i] is TCustomAction then
    begin
      a := TCustomAction(ac.Actions[i]);
      if a.ShortCut <> 0 then
        result := result + ShortCutToText(a.ShortCut) +',';
  end;
end;

Gerade getestet - mit Dephi 5 - und funktioniert!

sx2008 - Held des Tages für mich :thumb: :love:

Vielen Dank!


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:44 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz