问题标签 [tlist]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
delphi - Delphi 中的持久多态列表
我需要一个多态对象列表(不同的对象类,但具有公共基类),我可以将其作为表单文件的一部分“保留”。
TList 不是持久的,TCollection 不是多态的。
我可能可以自己动手,但不想重新发明轮子。想法?
delphi - 在 Delphi XE5 中使用方式多 TList
我想TList
在 Delphi 中使用 multi 。例如:
我认为这是不正确的,因为TList
接受参数作为Pointer
值。
有没有办法使用 multi TList
?
delphi - Generic TList.Sort 出现“堆栈溢出”错误
我已经实现了 Generics.Defaults.TComparer 来对类型化的 TList 进行排序。然而,当调用 Sort 方法时,它会抛出异常“Stack overflow at...”
为什么会发生堆栈溢出错误?
arrays - 如何使用 Delphi7 处理类型数组(TList,类)
我有一个带有变量的旧程序:
我可以将模块存储在列表中:
但我怎样才能从列表中读取一个元素
从列表中?
以及如何将模块传递给函数/过程,如下所示:
这样我就可以使用我的模块和 TObjectList 了吗?
提前致谢。
delphi - 循环通过大记录的 TList 时的长时间延迟
我在 Windows 10 中使用 Delphi 10.1 Berlin。
我有两条不同大小的记录。我编写了代码来循环遍历其中两个TList<T>
记录以测试经过的时间。循环遍历较大记录的列表运行速度要慢得多。
谁能解释原因,并提供解决方案以使循环运行得更快?
delphi - 编写 tList到 tFileStream
我在 Windows 10 中使用柏林。我尝试保存tList<string>
到文件。
我知道如何处理 tStringlist、tStreamWriter 和 tStreamReader,但我需要使用 tFileStream,因为应该添加其他类型的数据。
在以下代码中,读取数据的 Button2Click 循环引发了 eOutOfMemory 异常。当我将简单的字符串值分配给 _String 时,它运行良好,但如果我将 tList 值分配给相同的 _String ,似乎文件中写入了错误的数据。我无法理解 和 之间的_String := _List.List[i]
区别_String := 'qwert'
。
我如何写信tList<string>
给 tFileSteam?
delphi - Delphi - 创建 UnicodeString 的 TList 时访问冲突
我正在用 RAD Studio XE7 编写一个 Delphi 包。我最近遇到了一个奇怪的访问冲突,我不知道为什么会这样。上下文是我试图维护一个字体名称列表。所以我声明了以下类型:
在我的一个类中,我声明了一个变量,如下所示:
然后,在构造函数中,我尝试像这样实例化这个变量:
我编译了这个包,并创建了一个使用该代码的 C++ 项目。但是,每次在构造函数中实例化 m_pCustomFontList 时,我都会在以下代码的 Begin 行(位于 System.Generics.Collections.pas 中)遇到奇怪的访问冲突:
后来我发现 TStringList 对我的值来说是一个更好的选择,于是我改成了那个类型。从这一刻起,上述访问冲突就再也没有出现过。但是我无法理解问题所在。我在我的包中创建了几个 TList(或类似 TObjectList 的派生),而我声明的任何其他类型的 TList(即 UnicodeString 的 TList 除外)都没有遇到过这样的问题。那么任何人都可以向我解释为什么这个特定的 TList 在构造时会产生访问冲突吗?从理论上讲,如果这是我的愿望,或者我错了,没有什么能阻止创建 UnicodeString 的 TList?
问候
--- 编辑于 15.02.2017
这是一个在我的计算机上重现该问题的小示例。为此,应在 Delphi 中创建一个包项目,并且一个 C++ VCL 形成将使用此包的应用程序项目。在包中,创建一个新单元并复制以下代码:
在 c++ 项目中,只需在 TForm1 的构造函数中添加这一行:
然后构建包并运行项目
问候
delphi-7 - 在 TList Delphi7 中搜索对应的值
我有一个TList
动态填充的数据库,它包含一个 ID 和名称。
我需要知道的是如何在不使用循环TList
的情况下通过提供 ID来搜索某个名称。for
delphi - 为什么 Delphi 7 不允许扩展类型的 TList
我已经创建了几个简单的列表(以及整数列表和颜色列表),但是当我尝试创建一个“扩展”列表时,它说无效的类型转换,即使我对前两个列表使用了类似的类型转换(它在任何地方都会抛出错误我使用 Extended() 类型转换)。
multithreading - Delphi 只读泛型,如 TDictionary和 TList线程安全吗?
我可以仅在单元初始化中在通用列表或字典中添加项目,然后将其用作多个线程的只读吗?
我阅读了一个线程安全的主题TList<T>
和另一个TDictionary<T>
不是线程安全的主题。两者之间会有什么区别?