Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#9

Re: Onclick und rechte Maustaste!

  Alt 31. Dez 2005, 12:31
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
  Mit Zitat antworten Zitat