你创建窗体时,Delphi会自动把CreateForm放入Dpr中, 你去看程序的Dpr文件,去掉MDI子窗体的CreateForm代码。只留下MDI主窗体。当你要显示子窗体时,再动态创建,例如 if Not Assigned(FormX) then FormX:=TFormX.Create(Application); FormX.Show。即可 子窗体的‘关闭‘可以选择为3中方式 ,Action := caminimize; action := cafree; action := canone(取消)MainForm有个 MDIChildren[i]属性,用它来做控制、察看子窗体的状态很方便。
var MyForm:TForm; //MyForm oncreate if MyForm=nil then begin MyForm:=TForm.Create(application); MyForm.Show(MyForm.ShowModal); end else MyForm.Show(MyForm.ShowModal); //MyForm onclose Action:=caFree; MyForm:=nil;
Thanks you answor!but I found what cause this is I drag a panel on MDIFORM! MDICHILD show in the back of panel,so I couldn't see anything!
你不把代码贴出来,光这样讲有什么用 mdi子窗体创建时就显示了
在*.dpr文件中將mdichild.create項刪去,然後在要顯示的unit中將mdichild unit加下列代碼 var child:tmdichild; begin child:=tmdichild.create(application); end;
你去看程序的Dpr文件,去掉MDI子窗体的CreateForm代码。只留下MDI主窗体。当你要显示子窗体时,再动态创建,例如
if Not Assigned(FormX) then
FormX:=TFormX.Create(Application);
FormX.Show。即可
子窗体的‘关闭‘可以选择为3中方式 ,Action := caminimize; action := cafree; action := canone(取消)MainForm有个 MDIChildren[i]属性,用它来做控制、察看子窗体的状态很方便。
//MyForm oncreate
if MyForm=nil then
begin
MyForm:=TForm.Create(application);
MyForm.Show(MyForm.ShowModal);
end else MyForm.Show(MyForm.ShowModal);
//MyForm onclose
Action:=caFree;
MyForm:=nil;
MDICHILD show in the back of panel,so I couldn't see anything!
mdi子窗体创建时就显示了
var child:tmdichild;
begin
child:=tmdichild.create(application);
end;