我想将整个 TMenuItem 及其子项克隆到另一个 TPopupMenu。这是一个很好的代码:
function CloneMenuItem(SourceItem: TMenuItem): TMenuItem;
var
I: Integer;
Begin
with SourceItem do
Begin
Result := NewItem(Caption, Shortcut, Checked, Enabled, OnClick, HelpContext, Name + 'Copy');
for I := 0 To Count - 1 do
Result.Add(CloneMenuItem(Items[I]));
end;
end;
以下工作正常(b1 是带有子菜单的 PopupMenu1.TMenuItem):
PopupMenu2.Items.Add(CloneMenuItem(b1));
问题是如果 SourceItem 是根项目,我无法克隆整个TPopupMenu。例如:
PopupMenu2.Items.Add(CloneMenuItem(PopupMenu1.Items));
不会工作。我只能看到1 个项目,就好像它是一个分隔符。