![]() |
TActionlist -> Kategorien auslesen und Action enabled = T
Hallo zusammen,
1. wie kann ich bei einer TActionliste alle Kategorien in eine StringListe auslesen ? Für die einzelnen Actions mache ich es so:
Delphi-Quellcode:
2. Wie kann ich alle Actions die einer Kategorie zugeordnet sind enabled = TRUE/FALSE setzen ? (Würde dann den vorher ausgelesenen Kategorienamen dafür nutzen wollen)
For I := 0 to DM.Actionliste.ActionCount - 1 do
begin if AnsiLowerCase(DM.Actionliste.Actions[I].ClassName) = AnsiLowerCase(CB.Text) then begin StrList.add(DM.Actionliste.Actions[I].Name); end; end; Gruss Holger |
Re: TActionlist -> Kategorien auslesen und Action enabled
Für 1tens ist das meine Lösung:
Delphi-Quellcode:
Wenn da jemand was besseres weiss immer her damit ...
var
Kategorie: String; ... For I := 0 to DM.Actionliste.ActionCount - 1 do begin if Kategorie <> DM.Actionliste.Actions[I].Category then begin StrList.add(DM.Actionliste.Actions[I].Category); end; Kategorie := DM.Actionliste.Actions[I].Category; end; für 2tens ist das meine Lösung:
Delphi-Quellcode:
Wenn auch dort jemand was besseres weiss, immer her damit...
For I := 0 to DM.Actionliste.ActionCount - 1 do
begin if DM_Query.Query_Berechtigung['ITEM'] = DM.Actionliste.Actions[I].Category then begin MeineAction := TAction(FindComponent(DM.Actionliste.Actions[I].Name)); MeineAction.Enabled := TRUE; end; end; Gruss Holger |
Re: TActionlist -> Kategorien auslesen und Action enabled
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:
Freundliche Grüße
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; |
Re: TActionlist -> Kategorien auslesen und Action enabled
Alles klar. Vielen dank.
Doppelt habe ich die nicht drin. Dachte nur das halt z.B. 2 Action ja die gleiche KAtegorie haben können und daher diese mehrfach in die Stringlist geschrieben würde ... Gruss Holger |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:32 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz