![]() |
Menü einträge durchlaufen
Hallo...
vielleicht kann mir jemand helfen... ich muss in einer schleife alle menüeintrage durchlaufen, aber nicht die übereinträge. Also im Hauptmenu gibt es z.B Datei , Bearbeiten, Ansicht usw... unter datei gibt es dann z.B neu, öffnen usw hier bräuchte ich jetzt also den namen von neu (z.B neu1) und von öffnen (ffnen1) usw... Problem ist nur, das neu z.B auch untereinträge haben kann wie z.B Datei, dokument, bild oder so und das diese Items auch wieder untereinträge haben könnten. Bis jetzt habe ich es so gemacht:
Delphi-Quellcode:
ist aber keine gute lösung, da weiter untereinträge nicht berücksichtigt werden können also muss ich es anders machen...
var
i,y:integer; begin for i:=0 to Menu.Items.Count-1 do begin for y:=0 to menu.items.Items[i].Count-1 do begin ShowMessage(Menu.Items[i].Items[y].name); end; end; end; nur leider hab ich kein plan wie... hat da jemand zufällig ne gute idee |
Re: Menü einträge durchlaufen
das Stichwort lautet: Rekursion
|
Re: Menü einträge durchlaufen
das habe ich auch schon gehört nur leider kenn ich mich damit nicht aus hast du eventuell einen code, denn ich auf mein Problem anwenden kann?
|
Re: Menü einträge durchlaufen
Erste Anlaufstelle wenn ich was nicht verstehe ist für mich immer
![]() //edit: oops, deadlink. korrigiert |
Re: Menü einträge durchlaufen
Hallo,
da gab es Vorgestern noch einen Thread: ![]() in dem nächsten Beitrag noch eine Möglichkeit per durchlaufen der Items. Beide Codes funktionieren rekursiv. |
Re: Menü einträge durchlaufen
Probier mal den Code:
Delphi-Quellcode:
und zusätzlich die rekursive Prozedur:
var
i:integer; begin for i := 0 to Menu.Items.Count-1 do MyMenuShowMessage(Menu.Items[i]); end;
Delphi-Quellcode:
Das klappt. :)
procedure MyMenuShowMessage(myMenuItem:TMenuItem);
var i:integer; begin ShowMessage(myMenuItem.Caption); for i := 0 to myMenuItem.Count-1 do MyMenuShowMessage(myMenuItem.Items[i]); end; |
Re: Menü einträge durchlaufen
Danke an alle
habe es mit der hilfe von Lannes schon hinbekommen aber trotzdem auch herzlichen dank an Martin Lassahn für deine Mühe der code funzt auch also danke an alle die mir geholfen haben |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:11 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