Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Aktionen zur Laufzeit einfügen? (https://www.delphipraxis.net/125662-aktionen-zur-laufzeit-einfuegen.html)

fortuneNext 11. Dez 2008 16:22

Re: Aktionen zur Laufzeit einfügen?
 
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 8-)
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...

fortuneNext 12. Dez 2008 20:40

Re: Aktionen zur Laufzeit einfügen?
 
Mal so am Rande - habe ich die Frage in der falschen Kategorie gestellt? Bin mir nicht ganz sicher...


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:39 Uhr.
Seite 2 von 2     12   

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