Einzelnen Beitrag anzeigen

PeterPanino

Registriert seit: 4. Sep 2004
1.451 Beiträge
 
Delphi 10.4 Sydney
 
#1

Alle Items UND SubItems eines Popup-Menüs rekursiv durchlaufen

  Alt 5. Apr 2013, 17:04
Hallo! Ich verwende folgenden Code, um alle Items UND SubItems eines Popup-Menüs rekursiv zu durchlaufen und zu verarbeiten:
Delphi-Quellcode:
procedure TForm1.IterateMenuItems(AObject: TObject);
var
  i: Integer;
begin
  if AObject is TPopupMenu then
  begin
    for i := 0 to TPopupMenu(AObject).Items.Count - 1 do
    begin
      DoSomething(TPopupMenu(AObject).Items[i]);
      if TPopupMenu(AObject).Items[i].Count > 0 then
        IterateMenuItems(TPopupMenu(AObject).Items[i]);
    end;
  end
  else if AObject is TMenuItem then
  begin
    for i := 0 to TMenuItem(AObject).Count - 1 do
    begin
      DoSomething(TMenuItem(AObject).Items[i]);
      if TMenuItem(AObject).Count > 0 then
        IterateMenuItems(TMenuItem(AObject).Items[i]);
    end;
  end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  IterateMenuItems(PopupMenu1);
end;
Gibt es dafür auch eine einfachere Methode?
  Mit Zitat antworten Zitat