问题标签 [townedcollection]
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 中使用 TOwnedCollection 后代
我正在尝试使用集合属性创建自定义组件。但是,如果我尝试在设计时通过单击对象检查器中的“...”按钮来打开集合编辑器,则不会发生任何事情。我错过了什么?
这是我的 TCollection 后代:
和项目:
delphi - 将 TCollection 与已定义的类一起使用
(注意:这与我的最后一个问题有些相关)。
我是在 Delphi 中使用 TCollection 的新手,并且仍在思考处理一对多类/属性项关系的各种方法。探索 TCollection 和 TCollectionItem,我遇到了几个问题:
1) 是否可以将 TCollection 或 TOwnedCollection 用于 TForm 属性?(还没有尝试过,但我提前想知道它的内置对象检查器功能是否会导致问题)。
2)如果有人想要使用一些已经定义的其他地方的类,它不能直接从 TCollectionItem 继承,与 TCollection(即“作为”一种“TCollectionItem”),可以实现吗?如果是这样,那是否可以通过接口完成?...或者最好的方法是什么?
delphi - 具有可编辑列的 TCollection PropertyEditor
对于我自己的 TCollection 后代,我想扩展集合属性编辑器。我想查看更多关于我的 TCollectionItem 的其他属性的列。我很幸运,因为这很容易。我唯一想做的就是重写这三个方法
检索列数、列标题和集合项的列值。
现在我想编辑属性单元格。在这里停下来很有趣,我自己编写了一个完整的集合编辑器(可能作为 TCollectionEditor 在单元 ColnEdit.pas 中的副本或后代)?
我希望有一些更简单的东西,但我对构建复杂 TCollectionEditor 的示例很感兴趣。
乔海因茨 Z.
delphi - 添加后delphi TCollection计数不增加
我有类型
- TNotifyReply = 类(TCollectionItem)
- TNotifyReplylist = 类(TOwnedCollection)
NotifyReplylist := TNotifyReplylist.Create(self, TNotifyReply);
调用此函数(任意次数)后,计数仍为零
知道这里发生了什么吗?
delphi - 如何在设计时调用组件的属性编辑器
我创建了一个从 TCustomPanel 派生的组件。在那个面板上,我有一个从 TOwnedCollection 派生的类的已发布属性。一切正常,在对象检查器中单击该属性的省略号会打开默认集合编辑器,我可以在其中管理列表中的 TCollectionItems。
我还希望能够在设计时双击面板并默认打开集合编辑器。我首先创建了一个派生自 TDefaultEditor 的类并注册它。
这似乎在正确的时间运行,但我被困在当时如何启动集合的属性编辑器。
任何解决方案或不同的方法将不胜感激。
c++builder - 如何将 TCollectionItem 的 2 次派生类添加到 TOwnedCollection?
我想使用 TOwnedCollection / TCollectionItem 实现一个集合或列表。我需要一个具有多态性的类的持久列表(从 FileStream 加载和创建)。
到目前为止,这是我的(部分)代码,但我没有成功创建派生类 TGenerator 而不是其父类 TPowerComponent 并将其添加到集合中。
要添加 TGenerator 而不是 TPowerComponent,我使用:
TCollectionItem 子项的创建自动将自身添加到 TCollection
这里的问题是我们无法将创建项目的过程与将其添加到集合中分开。
例如,当我需要另一个可以包含第一个集合列表的某些项目的列表时,SelectedComponents 可以包含网络集合的一个或一些项目,而无需重新创建它们。
这可以通过
但我无法使用 FileStream / 持久列表来写入/读取它们。我需要将它们放在 TCollection 中,但不重新创建它们。
如何?