Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Popupmenü in ein Mainmenü kopieren (https://www.delphipraxis.net/107229-popupmenue-ein-mainmenue-kopieren.html)

Gonzo2 24. Jan 2008 13:23


Popupmenü in ein Mainmenü kopieren
 
Ich hab abhängig vom Inhalt des Formulars eines von drei Popummenüs die auf dem Formular zu Einsatz kommen. Mal dies, mal das. Soweit klappt alles. Jetzt möchte ich aber auch ein entsprechendes Menü im Mainmenü haben. Damit meine ich, daß wenn ich auf das Menü "Extras" klicke, sich vor dem Aufklappen das Menü anpaßt und dem aktuellen Popupmenü entspricht.

Hier will ich aber nicht doppelte Pflege betreiben und zwei Menüs mit gleichen Items erstellen, sondern nur das Popupmenü erstellen und die TMenuItem's durch kopieren übernehmen. Als erste Aufgabe wird das alte Inhalt des Menüs "Extras" gelöscht und dann soll das Popupmenü kopiert werden.

Nur irgendwie sitze ich seit gestern da und es klappt nicht. Das Löschen ist kein Problem und auch der Anfang klappt. Danach hagelt es aber immer Fehlermeldungen. Also ich weiß wie man währened der Laufzeit Menüs hinzufügt, nur kriege ich keine Popupmenü kopiert.


Delphi-Quellcode:
var
  i: Integer;
  MenuItem: TMenuItem;
begin
  MenuExtras.Clear;
 
  for i := 0 to PopupMenu.Items.Count - 1 do
  begin
    MenuItem := TMenuItem.Create(Self);
    MenuItem.Name := 'Extra' + IntToStr(i);

    ???
  end;

mashutu 24. Jan 2008 13:48

Re: Popupmenü in ein Mainmenü kopieren
 
das war doch vom Ansatz her schon ganz gut:
Delphi-Quellcode:
var
  i: Integer;
  miNew,
  miOld: TMenuItem;
begin
  MenuExtras.Clear;
 
  for i := 0 to PopupMenu.Items.Count - 1 do
  begin
    miOld:=PopupMenu.Item[i];    
    miNew:= TMenuItem.Create(Self);
    miNew.assign(miOld);
    MiNew.Name := 'Extra' + IntToStr(i);

    niNew.parent:=MenuExtras;
  end;
Das ist jetzt untested, vielleicht gibt es aerger, mit dem assign, weil eine Komponente dieses Namens bereits existiert, dann musst Du die Zuweisungen halt von Hand machen ...

shmia 24. Jan 2008 17:15

Re: Popupmenü in ein Mainmenü kopieren
 
Code-Library: Menues kopieren


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:27 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz