救命啊!为什么我用fastreport的内存老是增加?

lifengliu2000 2006-04-07 06:05:33
各位老大,我得fastreport中load的是个大小为6.43k的报表,
里面只有一个全是英文字符的text,
导出的每一个word文件都是28k,
请问:为什么每次循环这个程序所占的内存都会增加400多k?有没有办法不让它增加?
是不是我有什么地方没释放呢?请各位老大救命。
下面是代码
procedure TForm1.Button1Click(Sender: TObject);
var
i: integer;
RFFRExportDoc: TRFFRExportDoc;
frxReport: TfrxReport;
begin
try
frxReport1.LoadFromFile(ExtractFilePath(Application.ExeName) + 'user_noSql.fr3');
frxReport1.PrepareReport;
for i := 1 to 500 do
begin
try
//frxReport := clone(frxReport1);
frxReport := TfrxReport.Create(nil);
frxReport.LoadFromFile(ExtractFilePath(Application.ExeName) + 'user_noSql.fr3');
frxReport.PrepareReport;
RFFRExportDoc := TRFFRExportDoc.Create(nil);
RFFRExportDoc.OpenAfterGenerate := False;
RFFRExportDoc.ShowDialog := False;
RFFRExportDoc.ShowProgressDialog := False;
RFFRExportDoc.FileName := ExtractFilePath(Application.ExeName) + 'doc\' + inttostr(i) + '.doc';
frxReport.Export(RFFRExportDoc);
finally
frxReport.Clear;
frxReport.CleanupInstance;
RFFRExportDoc.Free;
//frxReport.Free;
frxReport.Destroy;
sleep(1000);
end;
end;
finally
showmessage('finish!');
end;
end;
...全文
637 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
lifengliu2000 2006-05-04
  • 打赏
  • 举报
回复
救命啊!
lifengliu2000 2006-04-19
  • 打赏
  • 举报
回复
help!救命哦!
lifengliu2000 2006-04-15
  • 打赏
  • 举报
回复
help!!!!
DURON800 2006-04-13
  • 打赏
  • 举报
回复
搞不懂。
DURON800 2006-04-13
  • 打赏
  • 举报
回复
关注
allan0736 2006-04-12
  • 打赏
  • 举报
回复
记得老师好象说过文件是以2进制打开的,要先定义二进制什么的```没记清楚````老师也碰到这样问题```
yyjzsl 2006-04-12
  • 打赏
  • 举报
回复
顶一下^_^
lifengliu2000 2006-04-11
  • 打赏
  • 举报
回复
救命啊!
lifengliu2000 2006-04-07
  • 打赏
  • 举报
回复
我都释放了啊
finally
frxReport.Clear;
frxReport.CleanupInstance;
RFFRExportDoc.Free;
//frxReport.Free;
frxReport.Destroy;
sleep(1000);
end;
Tensionli 2006-04-07
  • 打赏
  • 举报
回复
创建的对象在finally里都释放掉试试。
这个指南让你熟悉报表设计器和了解报表设计的基本概念(各种区域,数据源,二次表,等等)。指南将帮助你开始用FastReport创建报表,但它不能告诉你怎样使用其它基本的报表设计器。 如果你不熟悉报表设计器,我们建议你参考QuickReport的帮助系统。QuickReport的指南已经包含在你的Delphi拷贝中。QuickReport的大部分基本概念也适用于FastReport,然而,FastReport能提供更多的弹性和最终用户的自定义。 关于FastReport的说明 FastReport是高弹性的报表设计器,用于报表的数据可以从任何类型的数据源获取,包含字符列表,BDE数据库,ADO数据源(不使用BDE),Interbase(使用IBO),Pascal数组和记录,以及一些不常用的数据源。 整个FastReport系统是用Delphi的Pascal编写的。FastReport不需要动态链接库,但需在你的项目中占用大约400kb(Delphi 5)。如果你想最终用户拥有设计能力,这将在你的.EXE中增加大约500kb。虽然这看上去比较大,但这只是其它设计的几分之一。你同样应该考虑到FastReport不仅仅只是包含最终用户更改报表设计的能力,还能够适应查询和数据库的变化。FastReport还包含自己的脚本语言,让应用程序和最终用户能够更容易地改变报表。如果你的大部分应用使用FastReport,你可以简单地配置FastReport BPL(大约1400kb)而所有你的应用程序只需要保留很少的一部分。 你可以发现FastReport有一个非常吸引人的用户界面,使用最新的用户界面组件,例如可停靠的工具栏。你的最终用户将会非常愿意使用这个设计器,只需使用鼠标就可以创建大多数报表。 FastReport是名副其实的快速报表:较其它一些Delphi报表设计器而言,你可以发现没有什么可以接近于它的开发速度。报表预览窗口一直是大多数报表设计器的弱点,高品质的外观,赋于你的应用程序非常专业的用户界面。 FastReport是一个已经拥有三年历史的非常成熟的报表设计器,成长使它拥有其它Delphi报表设计器所不能相比的诸多先进特性。
这个指南让你熟悉报表设计器和了解报表设计的基本概念(各种区域,数据源,二次表,等等)。指南将帮助你开始用FastReport创建报表,但它不能告诉你怎样使用其它基本的报表设计器。 如果你不熟悉报表设计器,我们建议你参考QuickReport的帮助系统。QuickReport的指南已经包含在你的Delphi拷贝中。QuickReport的大部分基本概念也适用于FastReport,然而,FastReport能提供更多的弹性和最终用户的自定义。 关于FastReport的说明 FastReport是高弹性的报表设计器,用于报表的数据可以从任何类型的数据源获取,包含字符列表,BDE数据库,ADO数据源(不使用BDE),Interbase(使用IBO),Pascal数组和记录,以及一些不常用的数据源。 整个FastReport系统是用Delphi的Pascal编写的。FastReport不需要动态链接库,但需在你的项目中占用大约400kb(Delphi 5)。如果你想最终用户拥有设计能力,这将在你的.EXE中增加大约500kb。虽然这看上去比较大,但这只是其它设计的几分之一。你同样应该考虑到FastReport不仅仅只是包含最终用户更改报表设计的能力,还能够适应查询和数据库的变化。FastReport还包含自己的脚本语言,让应用程序和最终用户能够更容易地改变报表。如果你的大部分应用使用FastReport,你可以简单地配置FastReport BPL(大约1400kb)而所有你的应用程序只需要保留很少的一部分。 你可以发现FastReport有一个非常吸引人的用户界面,使用最新的用户界面组件,例如可停靠的工具栏。你的最终用户将会非常愿意使用这个设计器,只需使用鼠标就可以创建大多数报表。 FastReport是名副其实的快速报表:较其它一些Delphi报表设计器而言,你可以发现没有什么可以接近于它的开发速度。报表预览窗口一直是大多数报表设计器的弱点,高品质的外观,赋于你的应用程序非常专业的用户界面。 FastReport是一个已经拥有三年历史的非常成熟的报表设计器,成长使它拥有其它Delphi报表设计器所不能相比的诸多先进特性。

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧