Hallo Holger,
wenn bei deiner ersten Lösung die Actions nicht nach Kategorie sortiert vorliegen, dann trägst du sie evtl. mehrfach ein.
Delphi-Quellcode:
procedure GetCategories(al: TActionList; s: TStrings);
var
i: Integer;
begin
s.BeginUpdate;
try
s.Clear;
with al do
for i := 0 to Pred(ActionCount) do
if s.IndexOf(Actions[i].Category) < 0 then
s.Add(Actions[i].Category);
finally
s.EndUpdate;
end;
end;
Freundliche Grüße