问题标签 [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 投票
1 回答
1964 浏览

delphi - 使用尖括号(我见过有人使用 TList)

我看到人们声明他们的 TLists

之后,当他们创建它时,他们会

所以我假设通过这样做,他们不必在使用 MyList.Items[I] 时对它进行类型转换,例如:

所以相反,他们会做

那是对的吗?

如果是这样,那为什么我不能让它在 Delphi 2010 中工作呢?我正在尝试 - 将我的列表声明为

MyList : TList<PSomeType>;

但是编译器说:

未声明的标识符:TList<>

我在那里做错了什么?

0 投票
8 回答
67839 浏览

delphi - Delphi TList 的记录

我需要存储一个临时的记录列表,并且认为这TList将是一个好方法吗?但是,我不确定如何使用 a 来执行此操作,TList并且想知道这是否是最好的,以及是否有人有任何示例说明如何执行此操作?

0 投票
3 回答
1037 浏览

delphi - Delphi 2010:混淆泛型类型 TList 场景?通过值或引用传递?

几天前,我在项目中间使用 Generic TList 时遇到了一个问题。我在一个简单的测试项目中对其进行了测试,并遇到了同样的问题。这是确切的代码:

Label1.Caption 将是100而不是10!为什么会这样?我认为TList.Add(const value)是按值传递而不是按引用传递!

0 投票
1 回答
5191 浏览

delphi - 如何将记录类型的记录添加到 TList<>?

我有一个数据树列表。我正在遍历树列表以匹配某些记录并将它们添加到通用 TList<>。除了所有记录值都成为为 TList 中的所有项目添加的最后一个之外,此方法有效。

这是一些代码:

像这样添加记录:

...或添加这样的记录:

结果完全相同。AList.Items[0...Count-1] 都具有相同的值。单步执行代码,我可以看到正在捕获正确的数据,但是一旦我将新记录保存到 AList,所有以前的记录都会采用相同的值。这表明 TList 中的每个项目都是指向内存中同一记录的指针。如果记录所占用的内存发生变化,所有项目都会发生变化。这使自那以后,但不是我想要的。如何分配 TList 中的新记录以保存不同的数据?

我知道我可以通过其他方式完成最终结果,而且我确实做到了。现在使用泛型和记录,这对我来说更具教育意义。我正在使用德尔福 XE。

谢谢

0 投票
2 回答
5331 浏览

delphi - tcxGrid 使用 TList 作为数据源

我想知道是否可以将 TList 对象绑定为 cxGrid 数据源。

所以我拥有的是一个 TList 对象,其中包含我不需要持久的各种对象。我想要一种 GridView 作为“所选项目”的概述,并且所选项目是列表中的对象。

最好由存储在 TList 中的对象类型定义列。

这是否容易实现,如果可以,您能否给我一个关于如何完成的概述。我目前正在使用一个 ListBox,它使用 tabWidth 作为一种列分隔符,但更愿意进行切换。

0 投票
3 回答
10100 浏览

delphi - 如何搜索通用 TList收藏?

可能重复:
如何在通用 TList 中搜索具有特定字段值的记录?

我有一个集合

TActivityCategory 有一个字符串类型的 Name 属性,我想使用 Name 属性搜索 TList。

我在 TList<> 中看到 BinarySearch,但这需要 TActivityCategory 的实例。我只想传递一个名称的字符串。

我该怎么做呢?

0 投票
1 回答
2585 浏览

vim - 在 Vim 中打开 NERDTree 和 Tlist

我正在寻找一种方法来(自动)在左侧直接打开 NERDTree 和 Tlist,以便每个插件占据屏幕高度的一半。我已经找到了这个问题,穆罕默德的答案正是我正在寻找的。但是,我想知道是否有更直接的方法可以做到这一点。

0 投票
6 回答
1305 浏览

delphi - 从Delphi中的TList开头删除大块项目的有效方法是什么

从 TList 中删除 (0) 代价高昂,因为所有后续项都需要向下移动。如果我需要从更大列表的开头删除大量项目,最快的方法是什么?

0 投票
1 回答
1556 浏览

delphi - Delphi XE2 TPointerList 用法

我在尝试编译 XE2 中的某些组件时遇到以下问题。这些组件不是为 XE2 准备的,但无论如何我都在尝试编译它们。

在一个组件中,它被声明为

使用时,例如

它产生“需要指针类型”编译错误。

我可以像这样纠正它

但是天知道我需要多少时间来修复所有错误。

是否有一些编译器指令或设置可以处理这个问题。我试过 {$X} 和 {$T} 没有效果。

在 XE2 Delphi TPointerList (TList.List 属性)被声明为动态数组

如果有人可以帮忙?

0 投票
2 回答
1386 浏览

delphi - Delphi:除 Integer 以外的类型用于索引 TStringList 项

Arrays可以使用用户定义的枚举类型进行索引。例如:

然后可以使用TIndexValue值作为索引来引用此数组中的元素:

我正在尝试使用TStringList.

一个简单的解决方案是在引用时将每个索引值转换为一个Integer类型:

另一个解决方案(隐藏所有转换)是创建一个子类TStringList并将所有转换推迟到该子类的访问继承Strings属性的子例程:

这适用于使用枚举类型的单个实现TIndexValue

但是,我想TStringList为由不同枚举类型索引的几个不同对象重新使用相同的逻辑或子类,而不必TStringList为每个可能的枚举类型定义子类。

这样的事情可能吗?我怀疑我可能不得不依赖 Delphi 的泛型,但我很想知道有更简单的方法可以实现这一点。