function TReportDB.GetReport(var RecList:TList):Boolean;
var
..
for j := IndexList.Count - 1 downto 0 do
begin
FileSeek(m_nFileHandle,SizeOf(RCV_REPORT_STRUCTEx)*(StrToInt(IndexList.Strings[j])),0);
FileRead(m_nFileHandle,Buf,SizeOf(RCV_REPORT_STRUCTEx));
if m_StockList.Strings[i] = Buf.m_szLabel then
begin
New(pBuf);
pBuf^ := Buf;
RecList.Add(pBuf);
Break;
end;
end;
end;
我的目的是得到一个链表(RecList),链表会在另外一个地方创建和释放。但是这段代码会造成内存的自动增长,不知道怎么控制啊。请指教!
var
..
for j := IndexList.Count - 1 downto 0 do
begin
FileSeek(m_nFileHandle,SizeOf(RCV_REPORT_STRUCTEx)*(StrToInt(IndexList.Strings[j])),0);
FileRead(m_nFileHandle,Buf,SizeOf(RCV_REPORT_STRUCTEx));
if m_StockList.Strings[i] = Buf.m_szLabel then
begin
New(pBuf);
pBuf^ := Buf;
RecList.Add(pBuf);
Break;
end;
end;
end;
我的目的是得到一个链表(RecList),链表会在另外一个地方创建和释放。但是这段代码会造成内存的自动增长,不知道怎么控制啊。请指教!
解决方案 »
- 100分求解:视频播放时窗口半透明是怎么做到的
- 有关集合类型的声明!
- checkbox增加到dbgrid中的问题!
- 没的分大家真的不能帮助我吗?/
- 关于FTP的问题!请求帮助!
- Delphi中的ActionX控件问题啊!!!!急啊!!!
- 如何获取屏幕的分辩率?请教,多谢!
- 数据库中的日期型字段例如:2003-2-27 9:45:12,在程序中使用TDateTime型的变量显示到文本框中无论如何都出不来时间,只有日期,成了2003
- 这段有关数据库ADO组件的错误信息是什麽意思?
- 贴一个将数字金额转成英文大写金额的函数
- 大家帮忙.谢谢!..(急急急急急)
- 郁闷:为Excel做的Addin DLL文件,在excel打开后,使用正常,但在excel退出时有异常提示
RecList.Add(pBuf);
在这个函数里Dispose(pBuf),好像数据会不对啊。
~~~~~~~这个参数类型必须和New()中的参数类型一致
建议:改用其他具有确定数据类型的List类,或者从TList继承一个新类,自己重写释放代码.
var
pBuf: PMyRec;其中
PMyRec = ^TMyRec;
TMyRec = record
...
end;则
New(pBuf);
执行结果是分配了SizeOf(TMyRec)大小的内存,并使pBuf指向该内存。