问题标签 [tcollectionitem]

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 回答
659 浏览

delphi - TColumn.FieldName 属性编辑器

我正在分析DBGrids.pas单位。有一个TColumn类已经发布了该FieldName属性

它被声明为一个字符串,但在对象检查器中它显示为一个可编辑的组合框 ( TDataFieldProperty)

我分析了几乎所有DBGrids单元,但找不到完成该技巧的地方。我应该去哪里看?

0 投票
1 回答
700 浏览

delphi - TCollectionItem 的后代事件

我写了简单的代码(见下文):一个事件的后代TCollectionItem。但是当我在对象检查器中单击OnDone事件时,我收到消息:

“无法为未命名的组件创建方法”。

这段代码有什么问题?

0 投票
1 回答
394 浏览

class - Delphi:如何允许在设计时设置 TCollectionItem 的 TClass 属性

我正在开发一个适用于多个类的组件。为了允许添加托管类列表,我编写了一个 TCollection 的继承类,其中每个项目(从 TCollectionItem 继承)定义了一个已发布的“TargetClassName”属性。“TargetClassName”属性的 setter 函数,调用以下函数以找到对应的 TClass:

(感谢 Dalija Prasnikar在 Delphi 中按名称编写函数 Get 类)。

现在,我想知道是否有更好的方法允许在设计时向 TCollectionItem 添加类。你怎么看?希望阅读有趣的解决方案!谢谢大家。

0 投票
0 回答
113 浏览

delphi - TCollectionItem 中的 TPersistent 组件/从 TPersistent 访问 TCollectionItem 属性

请查看 a 的波纹管代码部分TComponent

当方法SetFieldfromTSqlField被处理时,我想访问属性NamefromTSqlField : TCollectionItem以便我可以重命名它。

备注: 的所有者TCollection可能是一个或另一个TComponent

请就如何做到这一点提出一些建议。

0 投票
1 回答
107 浏览

c++builder - 如何将 TCollectionItem 的 2 次派生类添加到 TOwnedCollection?

我想使用 TOwnedCollection / TCollectionItem 实现一个集合或列表。我需要一个具有多态性的类的持久列表(从 FileStream 加载和创建)。

到目前为止,这是我的(部分)代码,但我没有成功创建派生类 TGenerator 而不是其父类 TPowerComponent 并将其添加到集合中。

要添加 TGenerator 而不是 TPowerComponent,我使用:

TCollectionItem 子项的创建自动将自身添加到 TCollection

这里的问题是我们无法将创建项目的过程与将其添加到集合中分开。

例如,当我需要另一个可以包含第一个集合列表的某些项目的列表时,SelectedComponents 可以包含网络集合的一个或一些项目,而无需重新创建它们。

这可以通过

但我无法使用 FileStream / 持久列表来写入/读取它们。我需要将它们放在 TCollection 中,但不重新创建它们。

如何?

0 投票
1 回答
110 浏览

delphi - 当“...”单击代表另一个 TCollection 的 TCollectionItem 属性时没有反应

我从来没有遇到过需要它的情况,这是我第一次尝试TCollection拥有TCollectionItem另一个TCollection. TCollectionItem这一切都编译得很好,但是当单击'TCollection属性后面的三个点时没有反应,即。TCollection不会出现包含该子列表的对话框。

我的印象是,由于不需要花哨的属性编辑器(子TCollection只携带具有 astring和 asingle属性的项目),IDE 几乎会自动处理它。

显然情况并非如此,或者我正在监督显而易见的事情,这是一种慢性病。

实现(运行时)单元有这个:

Register过程在设计时单元中实现,并且只调用该RegisterComponents过程。RegisterPropertyEditor并进行了一些无济于事的懒惰尝试。

如果有人能指出我的最短路径以便 IDE 识别TBitmapItemTag TCollectionItem,我将不胜感激。