Hallo, nochmal zurück zum eigentlichen Problem.
Zitat von
TriphunEM:
ich will einem MainMenu-Eintrag der zur Laufzeit erstellt wurde ein bestimmtes Popup hinzufügen!
Du möchtest die Items aus einem PopupMenu als dynamisches DropDown-Menü im MainMenu wiederverwenden? Das ist selten sinnvoll, weil das PopupMenu ein Kontextmenü ist und seine Aktionen nicht über das Hauptmenü ausgeführt werden sollen. Es ist ein Verstoß gegen die guten Sitten, aber technisch sehr einfach zu realisieren, wenn du deinen Aktionscode in einer ActionList verwaltest und den Items in deinem PopupMenu zugewiesen hast:
Delphi-Quellcode:
procedure AddMenuItems(miTake, miGive: TMenuItem);
var
i: integer;
mi: TMenuItem;
begin
// get rid of existing items
miTake.Clear;
for i := 0 to Pred(miGive.Count) do
begin
// create new menuItem
mi := TMenuItem.Create(miTake);
// share action with popup menuItem
mi.Action := miGive[i].Action;
// associate new item with menu
miTake.Add(mi);
end;
end;
procedure TDemoForm.FormCreate(Sender: TObject);
var
mi: TMenuItem;
begin
// dynamic creation of menuItem
mi := NewItem('&Test', TextToShortCut(''), false, true, nil, 0, '');
// make right most dropdownMenu
MainMenu.Items.Add(mi);
// populate dropdownMenu from popupMenu
AddMenuItems(mi, PopupMenu.Items);
end;
Silvestergrüße vom marabu