只运行一个MDICHILD窗口(100分)

  • 主题发起人 主题发起人 lqe_ada
  • 开始时间 开始时间
L

lqe_ada

Unregistered / Unconfirmed
GUEST, unregistred user!
只运行一个MDICHILD窗口,即同一个MDICHILD只运行一个
 
是不是程序只能运行一次?
 
在调用子窗体的地方作如下判断
if MDIChildFrm1 = nil then
begin
MDIChildFrm1=TMDIChildFrm1.Create(Self);
MDIChildFrm1.show;
end;

在子窗体的onclose事件中写Action:=caFree;
 
procedure OpenForm(FormClass: TFormClass; var Frm);
var
I:Integer;
Child: TForm;
begin
for I:=0 to Screen.FormCount-1 do
if Screen.Forms.ClassType =FormClass then
begin
Child:=Screen.Forms;
if Child.WindowState=wsMinimized then
ShowWindow(Child.Handle, SW_ShowNormal)
else
ShowWindow(Child.Handle, SW_ShowNA);
if (Not Child.Visible) then
Child.Visible:=True;
Child.BringToFront;
Child.SetFocus;
TForm(Frm):=Child;
Exit;
end;
Child:=TForm(FormClass.NewInstance);
TForm(Frm):=Child;
Child.Create(Application);
end;
 
接受答案了.
 
后退
顶部