Thema: Delphi TMenuItem = TopItem?

Einzelnen Beitrag anzeigen

Gremlin

Registriert seit: 18. Apr 2006
Ort: Im Süden
177 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: TMenuItem = TopItem?

  Alt 21. Jun 2007, 16:19
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;
Gruss Gremlin
  Mit Zitat antworten Zitat