我想要将一个TMenuItem及其子菜单克隆到另一个TPopupMenu中。
这里有一段不错的代码:
以下内容可以正常工作(b1是一个带有子菜单的PopupMenu1.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));
问题在于如果源菜单项是根菜单项,我无法克隆整个 TPopupMenu。例如:
PopupMenu2.Items.Add(CloneMenuItem(PopupMenu1.Items));
无法工作。我只能看到一个项目,就像它是一个分隔符一样。
TMenuItem.Parent == nil
可以吗?) - Vlad