Wow,
so langsam läufts echt
Danke nochmal allen bisherigen Helfern!
Nun habe ich mir folgende - zugegeben sehr verworrene Codezeilen - zurechtgepflückt. (Aufs Wichtige reduziert)
Delphi-Quellcode:
for x := 3 to MainMenu_ActMan.ActionCount do
MainMenu_ActMan.Actions[x].Free;
for x := 1 to length(FNAGBasicControl.Lg_LanguageFileList) - 1 do
MainMenu_ActMan.AddAction(CreateLanguageAction(AllesAufNameZusammengefasst, LanguageActionExecute), MainMenu_ActMan.ActionBars[0].Items[0].Items[3].Items[x - 1]);
Wenn man die Struktur des Actionmanagers erst einmal durchschaut hat, ergibt plötzlich alles einen Sinn
Nun das (wahrscheinlich letzte) Problem:
Damit die LanguageFiles im Submenu "Languages" aufgelistet werden, muss das Teil ja als Client mit Verweis auf die Action gespeichert werden.
Gekürzte Struktur:
MainMenu_ActMan
--ActionBars
----ActionBars[0]
------Items
--------Items[0] "Options"
----------Items
------------Items[0] "Eine Option"
------------Items[1] "Eine andere Option"
------------Items[2] "Eine dritte Option"
------------Items[3] "Languages"
--------------Items -> Hier müssten die Clients ja eigentlich hin, denke ich.
Wie krieg ich sie also dort rein? Mit der Zeile im MainMenu_ActMan.AddAction habe ich ja den genauen Ort zur Speicherung bereits spezifiziert - also eigentlich sollte nichts mehr im Wege stehen. Nun bekomme ich aber die Fehlermeldung:
"Listenindex überschreitet das Maximum (3)"
in der AddAction Zeile. Ich schließe daraus: Items[0], Items[1] etc gibt es noch überhaupt nicht - macht ja auch Sinn. Wie aber erstelle ich sie? SetLength klappt nicht, TActionClients und Array of TActionClient stimmen nicht überein...