问题标签 [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.

0 投票
3 回答
665 浏览

delphi - Delphi 中的持久多态列表

我需要一个多态对象列表(不同的对象类,但具有公共基类),我可以将其作为表单文件的一部分“保留”。

TList 不是持久的,TCollection 不是多态的。

我可能可以自己动手,但不想重新发明轮子。想法?

0 投票
1 回答
148 浏览

delphi - 在 Delphi XE5 中使用方式多 TList

我想TList在 Delphi 中使用 multi 。例如:

我认为这是不正确的,因为TList接受参数作为Pointer值。

有没有办法使用 multi TList

0 投票
1 回答
389 浏览

delphi - Generic TList.Sort 出现“堆栈溢出”错误

我已经实现了 Generics.Defaults.TComparer 来对类型化的 TList 进行排序。然而,当调用 Sort 方法时,它会抛出异常“Stack overflow at...”

为什么会发生堆栈溢出错误?

0 投票
1 回答
264 浏览

arrays - 如何使用 Delphi7 处理类型数组(TList,类)

我有一个带有变量的旧程序:

我可以将模块存储在列表中:

但我怎样才能从列表中读取一个元素

从列表中?

以及如何将模块传递给函数/过程,如下所示:

这样我就可以使用我的模块和 TObjectList 了吗?

提前致谢。

0 投票
1 回答
373 浏览

delphi - 循环通过大记录的 TList 时的长时间延迟

我在 Windows 10 中使用 Delphi 10.1 Berlin。

我有两条不同大小的记录。我编写了代码来循环遍历其中两个TList<T>记录以测试经过的时间。循环遍历较大记录的列表运行速度要慢得多。

谁能解释原因,并提供解决方案以使循环运行得更快?

0 投票
1 回答
864 浏览

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?

0 投票
0 回答
519 浏览

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 的构造函数中添加这一行:

然后构建包并运行项目

问候

0 投票
1 回答
202 浏览

delphi-7 - 在 TList Delphi7 中搜索对应的值

我有一个TList动态填充的数据库,它包含一个 ID 和名称。

我需要知道的是如何在不使用循环TList的情况下通过提供 ID来搜索某个名称。for

0 投票
2 回答
441 浏览

delphi - 为什么 Delphi 7 不允许扩展类型的 TList

我已经创建了几个简单的列表(以及整数列表和颜色列表),但是当我尝试创建一个“扩展”列表时,它说无效的类型转换,即使我对前两个列表使用了类似的类型转换(它在任何地方都会抛出错误我使用 Extended() 类型转换)。

0 投票
1 回答
741 浏览

multithreading - Delphi 只读泛型,如 TDictionary和 TList线程安全吗?

我可以仅在单元初始化中在通用列表或字典中添加项目,然后将其用作多个线程的只读吗?

我阅读了一个线程安全的主题TList<T>和另一个TDictionary<T>不是线程安全的主题。两者之间会有什么区别?