mdi的问题???(20分)

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

littlecaibird

Unregistered / Unconfirmed
GUEST, unregistred user!
procedure TForm1.CreateMDIChild;
var
Child:TForm3;
begin
Child:=TForm3.Create(Application);
end;

procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
CreateMDIChild;
end;

要求:
当存子窗体存在时,按下SpeedButton1不起作用,
当半闭这个窗体后,再按SpeedButton1就让子体出来??

就是要判断出这个子窗体如果存在,那不就不要再建立,
否则建立
 
怎么才能实现啊?
要不会按一下按钮就产生一个窗体,会产生好多的!!!
我只想产生一个,还在如果关闭怎么释放内存!!!
 
procedure TForm1.CreateMDIChild;
var
Child:TForm3;
begin
try
if Child=nill then//判断
Child:=TForm3.Create(self);
child.showmodel;//显示
finally
freeandnil(child);//释放
end;
end;
 
procedure OpenForm(FormClass: TFormClass; var fm; AOwner: TComponent);
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,3);
if (not Child.Visible) then Child.Visible:=true;
Child.BringToFront;
Child.SetFocus;
TForm(fm):=Child;
exit
end;
Child:=TForm(FormClass.NewInstance);
TForm(fm):=Child;
Child.Create(AOwner);
end;
 
在CHILD窗体的ONCLOSE中加上ACTION:=CAFREE就可以在关闭窗体时自动释放
 
后退
顶部