- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
procedure FreeListObjects( l : TStrings);
var i : integer;
BEGIN
FOR i := 0 TO l.Count -1 DO BEGIN
l.Objects[i].Free;
l.Objects[i] := NIL;
END;
end;
PROCEDURE StringListAdd;
VAR i : INTEGER; Code : LONGWORD;
BEGIN
l := Classes.TstringLIST.CREATE;
FOR i := 0 TO 4 DO BEGIN
Code := i ;
l.AddObject('', TObject(code));
END;
Code := LONGWORD(l.Objects[2]);
FreeListObjects(l);
l.Free;
END;
当我使用 l.OwnsObjects := TRUE
而没有 FreeListObjects(l)
时,会发生错误。
谁来释放这个字符串列表的对象?
1 Câu trả lời
您已经告诉字符串列表它拥有其 Objects
数组中的对象。在这种情况下,它会在您销毁列表时自动调用所有这些值的 Free
,就像您的 FreeListObjects
代码一样。
但是那里没有对象!您已经获取了不是对象的 Số nguyên
值,并对它们进行类型转换以将它们强制转换为 TObject
。您不能在 Số nguyên
上调用 Free
,但在任何代码调用 Free
时,它都不知道原始类型值(value)。进行类型转换时,您告诉编译器您知道自己在做什么,并且编译器相信您。如果您真的不知道自己在做什么,请不要进行类型转换。
你说没有 FreeListObjects
就会出错,但是你也 FreeListObjects
会出错。问题是您在不是对象的对象上调用 Free
。无论您是在自己的代码中调用它还是让库调用它都不重要。
您可能已经花一些时间使用 C#。在那种语言中,整数会自动“装箱”成真实的对象。这不是 Win32 Delphi 的工作方式。 Delphi 不进行装箱和拆箱。
关于delphi - 自由 TStringList 对象中的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1394114/
我希望创建类似“TOwnedStringList”(类名是虚构的)的东西,我可以将其构造为: sl := TOwnedStringList.Create(Self); sl.Sorted := Tru
我的环境: C++ Builder XE4 我正在尝试使用 TStringList 的数组使用 unique_ptr<> . 以下没有给出任何错误: unique_ptr vals(new int [
是的,我想将一个简单的日志文件读取到 TStringList 中,使用 LoadFromFile 可以轻松完成。但问题是该文件可能已经被另一个程序同时打开,因此可能会出现异常。我尝试使用: FileM
我有一个用于在 TStringList 中存储许多字符串的应用程序。这些字符串在很大程度上彼此相似,并且我想到可以即时压缩它们 - 即以唯一文本片段加上对先前存储的片段的引用的混合形式存储给定的字符串
可以在没有任何形式同步的情况下从 TStringList 读取数据吗?例如与主线程同步。 示例代码 var MyStringList:TStringList; //declared globally
Delphi 1 16 位(是的,它很旧,但运行良好) 一些示例代码: procedure TForm1.Button1Click(Sender: TObject); var SL: TStrin
Delphi 2007中有没有集成的解决方案来检查TStringList是否包含某个值的一部分? 例如: List.AddObject('This is a string', customString
我正在向 TStringList 添加一些 TObject 后代,例如通过调用 AddObject。我希望当我释放列表对象时它们也被释放。有什么办法可以实现这一点吗? 最佳答案 OwnsObjects
最近,一位信誉良好的 SO 用户通知我,TStringList 存在拆分错误,这会导致它无法解析 CSV 数据。我还没有被告知这些错误的性质,并且在互联网上进行了搜索,包括 Quality Centr
我用 tstringlist 制作了一个非常简单的日志。我将其写入文件: pLog.SaveToFile(FileName); 某处出现错误,我的计算机已关闭。之后,我找不到我的日志文件。可能该文件以
我正在开发一个键盘 Hook 并使用 SetWindowsHookEx,并将每个击键添加到 TStringList 中。为了操纵 TStringList 内的击键,我总是使用“.Text”属性。例如,
我有两个正在使用的字符串列表。一个具有关键字列表,另一个具有否定关键字列表。我希望能够搜索列表并挑选出不包含否定关键字的列表项并输出到第三个关键字列表。我使用的是 AnsiPos 函数,但是如果否定关
đóng cửa. Câu hỏi này cần có thông tin chi tiết hoặc rõ ràng. Hiện tại không chấp nhận câu trả lời. Bạn có muốn cải thiện câu hỏi này không? Thêm chi tiết và làm rõ câu hỏi bằng cách chỉnh sửa bài đăng này. Đã đóng 9 năm trước. Cải thiện th
因此,我有几个要读取并从中获取值的摘要文件。 我正在执行以下操作: OutputSummary := TStringList.Create; for idx := 0 to 82 do Outpu
我有一个自定义排序 TStringList ... Items.CustomSort(@CompareWords); ...使用此比较功能: function CompareWords(List: T
procedure FreeListObjects( l : TStrings); var i : integer; BEGIN FOR i := 0 TO l.Count -1 DO BEG
我正在使用 Delphi 7,并且有一个例程,该例程获取包含一系列记录的 csv 文件并导入它们。这是通过使用 MyStringList.LoadFromFile(csvfile) 将其加载到 TSt
我花了好几天时间寻找如何做到这一点,但没有什么是我真正需要做的(或者我只是不明白如何实现该解决方案)。 我需要做的是将一个字符串(街道地址)解析为 TStringList,然后将列表中的这些字符串设置
我试图在 TStringList 的对象属性内存储一个集合(并读取它)(我还将使用它来存储与该集合关联的文本),但我得到了该集合的无效类型转换。 在 StringList 对象中存储集合的最佳方法是什
我正在编写自己的类来管理 android/ios 应用程序的翻译,并且我已经生成了此代码。我将解释下面的代码,但它非常简单且简短。 unit Localization; interface uses
Tôi là một lập trình viên xuất sắc, rất giỏi!