问题标签 [tcollection]
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 - 将 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 - delphi 7:如何找到对象集合的项目?
如何按名称查找并在对象集合中获取项目?
我想编辑产品名称的数量。
我怎样才能做到这一点?谢谢你
arrays - 从 Dll 返回 TCollection 或对象数组
我试图从 dll 函数返回我自己的对象(从 TCollection 派生)。我使用了 FastMemoryManager,但没有成功......所以我尝试返回一些对象的动态数组。
dll函数中当然设置的数组的长度。它工作得很好,但分配的内存没有被释放。
(我用 Windows tarsk manager 测量)。有没有可能如何释放动态数组?调用dll函数的过程在线程中,最后我如下:
如果我使用而不是Setlength(MyObjectArray, 0) 和 MyObjectArray := nil,
则会引发 FreeAndNil(MyObjectArray) 异常。
有什么建议吗?
delphi - 是否可以?TCollection 后代实现存储任意内容的 TPanel 容器
我是 Delphi 组件开发的新手,因此想知道,是否有可能实现我的任务。
我需要创建一个基于 TScrollBox 的可视组件(用户控件),它将代表一堆 TPanel,所有这些面板都将在该 TScrollBox 内对齐为“顶部”,并且可以具有不同的高度。它必须充当 TCollection(添加、删除、重新排序),并且必须允许用户在设计时将其他控件添加到这些面板中。
我为组件创建了这些类:
该组件在设计时工作正常,我可以在堆栈中添加-删除面板,当我在任何面板上放置一些控件(例如 TCheckbox)时,它显示为“由该面板拥有”:例如我无法拖动此复选框面板外。
但此复选框不存储在 DFM 文件中,也不显示在“结构”窗口中。
我想TPanel的内容必须有一些手动序列化-反序列化,但我不知道该怎么做。在 Internet 上找不到任何示例。请给我一些指导,如果这样的实施是可能的。
加法:
这是在网格中添加 3 个面板后我的 DFM 文件片段的样子:
如您所见,所有项目都是空的,但我将一个复选框和单选按钮放入项目#3。
c++ - 递归读取 TCollection
我对递归非常糟糕,以前从未使用过它。我知道它的理论.. 没有帮助:)) 对于我的问题,我有一个包含 TCollection 和 TCollectionItem 等的 TCollection 结构。我必须编写一个递归函数来读取我所有的 TCollectionItems。这是图形视图:
TCollection->TCollectionItem(s)->TCollection->TCollectionItem(s)
TCollection 可以有 1 个甚至 2,3 个 TCollection 在他下面,或者没有。
这里还有几个例子:
TCollection->TCollectionItem
TCollection->TCollectionItem->TCollection->TCollectionItem->TCollection->TCollectionItem
ETC ..
如果我描述的问题不好,请告诉我,我可能做了..请问是否有不清楚的地方:)
感谢您的支持!
delphi - Getting the index # of a TCollection Item when added to a TCollection
I know that when I add a collection item to a collection, the index is zero-based. I would like to make it one-based and show the value in a property called Id
. Can someone tell me how I can go about this in code?
delphi - 使用 Tcollection 在 dephi 中保存 vcl 对象引用
我正在使用 delphi 2009 和 VCL 组件。我创建了一个名为 TStreets 的集合,该集合由 TStreet 项组成,它只有两个私有字段。现在我需要向 Tstreet 类添加另一个字段/属性来跟踪(通过使用引用)类 TMyObject 的其他对象。
一个例子:假设 TStreet 集合包含五个元素和十个对象 (TMyObject) 在我的应用程序运行时存在。TMyObject 的每个对象只能属于一个 TStreet,因此我需要为每个 TStreet 保存对象的所有引用,然后能够将一个或多个对象引用从一个 TStreet 移动到另一个。我应该在保存对象引用的 TStreet 下创建另一个集合吗?
走的路是否正确?
delphi - Delphi TCollection - 可以防止在运行时更改项目吗?
使用 delphi 7,我有一组 TCollection/TCollectionItem 后代。它们旨在仅在设计时设置,绝不能在运行时进行修改。我怎样才能做到这一点?设计时应始终允许进行任何需要的编辑,但在运行时,我不希望能够添加、删除或重新索引集合中的任何项目。每个项目的属性,是的,我确实希望启用它们。但是更改实际项目只能在设计时进行。