Einzelnen Beitrag anzeigen

shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#2

Re: Zwei PopUp's zusammenführen?

  Alt 27. Feb 2008, 17:16
Delphi-Quellcode:
procedure CloneMenuItem(source, dest : TMenuItem);
begin
   dest.Action := source.Action;
   dest.Caption := source.Caption;
   dest.ShortCut := source.ShortCut;
   dest.Checked := source.Checked;
   dest.Enabled := source.Enabled;
   dest.Visible := source.Visible;
   dest.OnClick := source.OnClick;

   dest.HelpContext := source.HelpContext;
   dest.Hint := source.Hint;
   dest.RadioItem := source.RadioItem;
end;

procedure CopyMenuItems(source, dest : TMenuItem);
var
   i : Integer;
   mi : TMenuItem;
begin
   Assert(Assigned(source), 'no source menu item');
   Assert(Assigned(dest), 'no destination menu item');
// dest.Clear; // auskommentiert, da MenuItems im Ziel erhalten bleiben sollen

   for i :=0 to source.Count-1 do
   begin
      mi := TMenuItem.Create(dest);
      CloneMenuItem(source.Items[i], mi);
      dest.Add(mi);
      if source.Items[i].Count > 0 then
         CopyMenuItems(source.Items[i], mi); // rekursiver Aufruf ;-)
   end;
end;
Der Aufruf wäre dann:
CopyMenuItems(Komponente.PopupMenue.Items, PopupMenue1); // oder anderstrum, je nachdem, was dann das aktive PU-Menue sein soll
Andreas
  Mit Zitat antworten Zitat