我是一名出学者!!!
我现在在MDI中点击一下主窗口下拉菜单m_menu1就出现一个子窗口m_child1,点击一下主窗口下拉菜单m_menu2就出现一个子窗口m_child2,而且我在点击菜单出现子窗口的同时菜单同时消失.
我现在的问题是:在子窗口关闭的同时相应的下拉菜单也恢复回来,这个我却实现不了.请各位大侠指点一二.我的代码如下:
打开窗口:
procedure Tu_main.Child_1Click(Sender: TObject);
var u_Child_1: Tu_Child_1;
begin
u_Child_1 := Tu_Child_1.Create(self);
u_Child_1.Show;
Child_1.Free;
end;
关闭子窗口:
procedure Tu_Child_1.FormClose(Sender: TObject; var Action: TCloseAction);
var Child_1: TMenuItem;
FirstMenue1 : TMenuItem;
begin
Action := cafree;
Child_1 := TMenuItem.Create(self);
FirstMenue1 := u_main.MainMenu1.Items[0];
FirstMenue1.Caption := '窗口1';
Child_1.add(FirstMenue1);
end;
我在上述关闭子窗口中创建子菜单的时运行时提示"Menu Inserted twice"的错误,请问用Free在内存中释放掉的子菜单怎么才能恢复回来.
我现在在MDI中点击一下主窗口下拉菜单m_menu1就出现一个子窗口m_child1,点击一下主窗口下拉菜单m_menu2就出现一个子窗口m_child2,而且我在点击菜单出现子窗口的同时菜单同时消失.
我现在的问题是:在子窗口关闭的同时相应的下拉菜单也恢复回来,这个我却实现不了.请各位大侠指点一二.我的代码如下:
打开窗口:
procedure Tu_main.Child_1Click(Sender: TObject);
var u_Child_1: Tu_Child_1;
begin
u_Child_1 := Tu_Child_1.Create(self);
u_Child_1.Show;
Child_1.Free;
end;
关闭子窗口:
procedure Tu_Child_1.FormClose(Sender: TObject; var Action: TCloseAction);
var Child_1: TMenuItem;
FirstMenue1 : TMenuItem;
begin
Action := cafree;
Child_1 := TMenuItem.Create(self);
FirstMenue1 := u_main.MainMenu1.Items[0];
FirstMenue1.Caption := '窗口1';
Child_1.add(FirstMenue1);
end;
我在上述关闭子窗口中创建子菜单的时运行时提示"Menu Inserted twice"的错误,请问用Free在内存中释放掉的子菜单怎么才能恢复回来.
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货