fc重装机兵军号:delphi 中frame内存释放的问题

来源:百度文库 编辑:中科新闻网 时间:2024/04/28 04:53:29
在form中动态创建了5个frame代码如下:
公共调用函数:
Procedure TCustodyCent.OpenFrame(index : Integer);
Begin
Case Index of
1 :
Begin
Frame9 := TOneFrame1.Create(Parent);
Frame9.Parent := Self.PanelFrame;
Self.OneLoadInit;
End;
2 :
Begin
Frame8 := TFrame8.Create(Parent);
Frame8.Parent := Self.PanelFrame;
Self.TwoLoadInit;
End;
3 :
Begin
Frame6 := TFrame6.Create(Parent);
Frame6.Parent := Self.PanelFrame;
Self.FourLoadInit;
End;
4 :
Begin
Frame4 := TFrame4.Create(Parent);
Frame4.Parent := Self.PanelFrame;
Self.EightLoadInit;

End;
5 :
Begin
Frame2 := TFrame2.Create(Parent);
Frame2.Parent := Self.PanelFrame;
Self.HexLoadInit;
End;
End;
End;

调用:
Openinterface := 2;
Self.OpenFrame(OpenInterface);
Self.TwoLoadInit;

procedure TcustodyCent.FormDestroy(Sender: TObject);
Begin
FreeAndNil(Frame9);
FreeAndNil(Frame8);
FreeAndNil(Frame6);
FreeAndNil(Frame4);
FreeAndNil(Frame2);
End;

程序运行,frame之间切换不多的情况下不会出现问题,但随着frame之间转换的次数过多,引起内存不够使用的情况下,就会报错.说没有足够的内存;
打开任务管理器,一边点frame,发现内存使用率在不断的上涨.
请问这个问题人没有人可以解决?怎么样才能提前把创建过的frame释放掉?