Home » Tipps & Tricks » Komponenten » Menüs » Menüs klonen
Menüs klonen
Folgende Funktion klont ein komplettes Menü inkl. Untermenüs. Ihr muss als Parameter das MenuItem übergeben werden. Die Funktion basiert auf dem Aufruf von „NewItem“. Es werden die Eigenschaften Caption, ShortCut, Checked, Enabled und HelpContext übernommen. Außerdem wird das gleiche OnClick-Ereignis zugewiesen.
function CloneMenuitem(SourceItem: TMenuItem): TMenuItem; var i: Integer; begin with SourceItem do begin Result := NewItem(Caption, //Die einzelnen Eigenschaften Shortcut, Checked, Enabled, OnClick, HelpContext, Name+'Copy'); for i:= 0 to Count-1 do Result.Add(CloneMenuItem(Items[i])); end; end;
Der untenstehende Aufruf kopiert das komplette Menu von Form1 in das Menü von Form2:
procedure TForm1.Button1Click(Sender: TObject); var I: Integer; begin for i:= 0 To Form1.MainMenu1.Items.Count-1 Do Form2.MainMenu1.Items.Add( CloneMenuItem(MainMenu1.Items[i])); end;