Wenn der Parent des MenuItem
nil ist, dann bist du am Anfang der Liste, dh. auf dem Eintrag der als übergeordnetes Item aller anderen TMenuItem fungiert.
Kleines Beispiel mit einem TPopup für einem Button (zufügen zweier Menu Templates im Popup vorrausgesetzt)
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
procedure SetMenuEvent(MenuItem:TMenuItem);
var
nLoop : integer;
begin
for nLoop := 0 to MenuItem.Count-1 do begin
if (MenuItem.Items[nLoop].Count=0) then
MenuItem.Items[nLoop].OnClick := Rckgngig1Click
else SetMenuEvent(MenuItem.Items[nLoop]);
end;
end;
begin
SetMenuEvent(PopupMenu1.Items);
end;
procedure TForm1.Rckgngig1Click(Sender: TObject);
procedure ShowParent(MenuItem:TMenuItem);
begin
Memo1.Lines.Add(MenuItem.Caption);
if MenuItem.HasParent and Assigned(MenuItem.Parent) then
ShowParent(MenuItem.Parent)
else ShowMessage('Am Ende angelangt');
end;
begin
if (Sender is TMenuItem) then begin
with (Sender as TMenuItem) do
ShowParent(Sender as TMenuItem);
end;
end;