这样做会不会造成内存泄漏?? CBDepotName.Items.AddObject(FieldByName('DepotName').AsString, TObject(FieldByName('DepotNo').AsString));请说明原因?? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 应该没有问题,因为你强行转换是Query.Field....而不是一个新的Object 不过我一般很少这么写的 泄漏是不会泄漏,但你的这种用法本来就不对~~FieldByName('DepotNo').AsString 相当于局部的string变量~~跳出这个堆栈后,其资源就已经失效了~~如果是整数类型就直接存整数,不要换成字符~~CBDepotName.Items.AddObject(FieldByName('DepotName').AsString, TObject(FieldByName('DepotNo').AsInteger)); 楼上说得有道理,就由于我的字段是varchar的类型,我才发此贴来问个明白。以前也有人不提倡这种的用法,不知道是什么原因? procedure TForm1.Button1Click(Sender: TObject);var P: PChar;begin GetMem(P, 1); FreeMem(P, 1); P[0] := 'b'; Caption := P[0]; //访问残留物,有什么感觉?~~end; 不过请问楼上为什么存为 AsInteger 这个类型;就不会释放掉呢! 我...也太..... ……TObject、Integer都是四个字节~~用四个字节保存四个字节的内容需要开辟其他资源吗?~~string也是四个字节,为什么能存储大于四个字节的内容?~~因为string是一个指针,string只保存数据所在的位置,而不是其数据的内容,明白没有?~~现在理解不了,以后会理解的~~解决问题先~~CBDepotName.Items.Add(FieldByName('DepotName').AsString);TempStringList.Add(FieldByName('DepotNo').AsString); //可以借另一个列表来存储~~ 学习 Delphi 深入开发Windows 网络编程 和主动防御(RootKit) 有什么好的书籍。 根据TLB文件调用另外一个EXE文件,总不成功. 求一个sql语句,解决后马上结帐,在线等! 请问数据库的exe怎样减少大小?? 送分题看看 请高手帮忙 说同句有用的话就给分!!! 各位大侠,来看一看 ^o^ mysql数据库存放路径 招贤纳士(年后上班) 100分征求《权限设置最佳方案》 有谁知道tspskin控件是在哪个包中的?
不过我一般很少这么写的
FieldByName('DepotNo').AsString 相当于局部的string变量~~
跳出这个堆栈后,其资源就已经失效了~~如果是整数类型就直接存整数,不要换成字符~~
CBDepotName.Items.AddObject(FieldByName('DepotName').AsString,
TObject(FieldByName('DepotNo').AsInteger));
个明白。以前也有人不提倡这种的用法,不知道是什么原因?
var
P: PChar;
begin
GetMem(P, 1);
FreeMem(P, 1); P[0] := 'b';
Caption := P[0]; //访问残留物,有什么感觉?~~
end;
就不会释放掉呢! 我...也太.....
用四个字节保存四个字节的内容需要开辟其他资源吗?~~string也是四个字节,为什么能存储大于四个字节的内容?~~
因为string是一个指针,string只保存数据所在的位置,而不是其数据的内容,明白没有?~~现在理解不了,以后会理解的~~
解决问题先~~CBDepotName.Items.Add(FieldByName('DepotName').AsString);
TempStringList.Add(FieldByName('DepotNo').AsString); //可以借另一个列表来存储~~