procedure TMainForm.CreateMDIChild(const Name: string);
var
Child: TMDIChild;
begin
{ create a new MDI child window }
Child := TMDIChild.Create(Application);
Child.Caption := Name;
if FileExists(Name) then Child.Memo1.Lines.LoadFromFile(Name);
end;procedure TMainForm.FileNew1Execute(Sender: TObject);
begin
CreateMDIChild('NONAME' + IntToStr(MDIChildCount + 1));
end;procedure TMainForm.FileOpen1Execute(Sender: TObject);
begin
if OpenDialog.Execute then
CreateMDIChild(OpenDialog.FileName);
end;procedure TMainForm.HelpAbout1Execute(Sender: TObject);
begin
AboutBox.ShowModal;
end;procedure TMainForm.FileExit1Execute(Sender: TObject);
begin
Close;
end;这里根本就没有对create出来的子窗体进行释放。现在有两个问题
1,程序退出的时候,是不是会自动释放子窗体占用的空间。
2,如果不会,怎么释放!
var
Child: TMDIChild;
begin
{ create a new MDI child window }
Child := TMDIChild.Create(Application);
Child.Caption := Name;
if FileExists(Name) then Child.Memo1.Lines.LoadFromFile(Name);
end;procedure TMainForm.FileNew1Execute(Sender: TObject);
begin
CreateMDIChild('NONAME' + IntToStr(MDIChildCount + 1));
end;procedure TMainForm.FileOpen1Execute(Sender: TObject);
begin
if OpenDialog.Execute then
CreateMDIChild(OpenDialog.FileName);
end;procedure TMainForm.HelpAbout1Execute(Sender: TObject);
begin
AboutBox.ShowModal;
end;procedure TMainForm.FileExit1Execute(Sender: TObject);
begin
Close;
end;这里根本就没有对create出来的子窗体进行释放。现在有两个问题
1,程序退出的时候,是不是会自动释放子窗体占用的空间。
2,如果不会,怎么释放!
procedure TClassChildFormDefine.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
Action := caFree;
end;procedure TClassChildFormDefine.FormDestroy(Sender: TObject);
begin
ClassChildFormDefine :=nil;
end;
Child := TMDIChild.Create(Application);
难道我要重新定义一个类???
var Action: TCloseAction);
begin
Action := caFree;
ClassChildFormDefine :=nil;
end;
procedure CreateChildForm(Const AName:String);
var
child:TChildForm;
begin
child:=TChildForm.create(Application);
child.Caption := AName;
end;在主窗体中调用 这个过程就可以出来,不用再child.show.
要关闭子窗体,就在onclose中用Action:=caFree就可以了。其它的不用操作
procedure TmodifyFrm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
end;