Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Menü einträge durchlaufen (https://www.delphipraxis.net/58761-menue-eintraege-durchlaufen.html)

kingflo 12. Dez 2005 11:35


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:
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;
ist aber keine gute lösung, da weiter untereinträge nicht berücksichtigt werden können also muss ich es anders machen...
nur leider hab ich kein plan wie...

hat da jemand zufällig ne gute idee

tomsel 12. Dez 2005 11:37

Re: Menü einträge durchlaufen
 
das Stichwort lautet: Rekursion

kingflo 12. Dez 2005 11:42

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?

tigerman33 12. Dez 2005 11:45

Re: Menü einträge durchlaufen
 
Erste Anlaufstelle wenn ich was nicht verstehe ist für mich immer Wikipedia (Rekursion)

//edit:
oops, deadlink. korrigiert

Lannes 12. Dez 2005 11:48

Re: Menü einträge durchlaufen
 
Hallo,

da gab es Vorgestern noch einen Thread:
über Components
in dem nächsten Beitrag noch eine Möglichkeit per durchlaufen der Items.
Beide Codes funktionieren rekursiv.

Martin Lassahn 12. Dez 2005 12:04

Re: Menü einträge durchlaufen
 
Probier mal den Code:

Delphi-Quellcode:
var
i:integer;
begin
  for i := 0 to Menu.Items.Count-1 do
    MyMenuShowMessage(Menu.Items[i]);
end;
und zusätzlich die rekursive Prozedur:
Delphi-Quellcode:
procedure MyMenuShowMessage(myMenuItem:TMenuItem);
var i:integer;
begin
  ShowMessage(myMenuItem.Caption);
  for i := 0 to myMenuItem.Count-1 do
    MyMenuShowMessage(myMenuItem.Items[i]);
end;
Das klappt. :)

kingflo 12. Dez 2005 12:12

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 18:00 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz