窗体释放问题(50分)

  • 主题发起人 主题发起人 hfutzhu
  • 开始时间 开始时间
H

hfutzhu

Unregistered / Unconfirmed
GUEST, unregistred user!
为什么我用form.free; form := nil;
这个form窗体的内存好像没释放,从资源管理器里面看没什么变化!应该怎么正确释放呢???
 
已经释放了阿。
 
调用一个WindowsAPI
给你给很爽的函数
procedure ReleaseMem;
const
MinSize = $FFFFFFFF;
MaxSize = $FFFFFFFF;
begin
SetProcessWorkingSetSize(GetCurrentprocess,MinSize,MaxSize);
end;
 
FreeAndNil(FormName)
 
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
end;
 
SetProcessWorkingSetSize(GetCurrentprocess,MinSize,MaxSize);
尽量不要用这个函数,尽量它很牛.
 
Action := caFree;我也用过啊,
free后从资源管理器里看,比没有创建窗体的时候内存使用的要大,不知道是什么原因阿??
 
他为什么不回到创建窗体前的内存大小阿????
 
用D2007编一程序,主要完成定时读文件,写Sql库,用多线程方式5秒执行一次,有对象的
Create,但立即FreeAndNil
运行两天后,从任务管理器中发现
PF为1.2G 页面错误为8,323,281 内存6,260k 虚拟内存10,984k
我原本以为有对象没有free完(我敢保证,不可能),又创建了一个程序试验(只有一个默认Form1),运行后发现
页面错误为1,003 过一会发现为1,437

上网搜索delphi的free并没有真正释放???。
难道真是Delphi的内存管理???
望各位大哥帮忙!!!
 
就是delphi的内存管理,防止频繁的向系统申请内存
VC好像也有这样的机制啊..
 
后退
顶部