Wie kann ich die, von mir, abgeleiteten Menüitems einer Menübar generisch zur Laufzeit ansprechen ?

Hallo liebe Mdels und Jungs, ich knnte mal eure Untersttzung gebrauchen…

Folgendes Problem:
Ich habe eine Subclass von MenuItem erzeugt. Vor allem aus dem Grund um das hinzugefgte Property in der IDE bearbeiten zu knnen.
Bis dahin alles Wunderbar. Behavier eingestellt und das Property ist in der IDE sichtbar und kann bearbeitet werden. Sehr schn.

Aber nun…
Ich muss zur Laufzeit, generisch, also ohne die Namen der Items zu kennen, ber alle Menuitems iterieren, um dieses neue Property auszuwerten. Mein erster Ansatz war, mit dem Startscreen Property ‘MenuBar’ und den Methoden MenuBar.Count() und MenuBar.Item(x) die einzelnen Menuitems zu untersuchen. Nur MenuBar.Item(x) gibt ein MenuItem zurck und nicht meine Subclass… Fazit der Compiler meckert und verweigert sich…

Der zweite Ansatz mit Introspection schien mir der Ausweg zu sein, nur dort schaffe ich es einfach nicht mich zu den Menuitems vorzuarbeiten.
Im Debugger zeigt sich unter “Startscreen.MenBar” “MenuBar1.MenuBar1” Drauf geklickt und es erscheinen einige Properties und auch ein Link ‘Contents’.
Und hinter ‘Contents’ da finde ich meine gesuchten abgeleiteten MenuItems… Nun meine Frage wie komme ich da (per Programm) mit Introspection oder anders heran?

Wei jemand Rat und kann mich auf einen erfolgreicheren Pfad schubsen…?

Xojo 2016r3 auf SuSE SLES 12…

Danke im Vorraus.

Ralf

Hallo Ralf,
es sollte mit deiner ersten Idee funktionieren, wenn du deine Klasse auf MenuBar.Item(x) typecastest. Also etwa

Dim MenuBarItem As MeineMenuItemKlasse = MeineMenuItemKlasse(Menubar.Item(x)).

Wobei du natürlich sicherstellen solltest, diesen Typ auch nur auf MenuItems deiner Klasse zu casten. Also ggf.

Dim MenuBaritem As Menuitem = Menubar.item(x) If MenuBarItem IsA MeineMenuitemKlasse then Dim MeinMenuBarItem As MeineMenuItemKlasse = MeineMenuItemKlasse(MenuBaritem) End if

Hallo Ulrich,

vielen, lieben Dank, dass du den Schlauch unter mir weggezogen hast auf dem ich stand…

Funktioniert wunderbar. ‘Casten’ schwebte im stillen ja auch vor… Aber ich hatte keine Idee wie…

Wieder etwas wertvolles gelernt…

Nochmals vielen Dank…

Ralf