对于我自己的TCollection后代我想扩展集合属性编辑器。我希望看到更多列用于我的TCollectionItem的其他属性。我很幸运,因为它很容易。我唯一想做的就是覆盖这三种方法
TAttributeList = class(TOwnedCollection)
private
...
protected
function GetAttrCount: Integer; override;
function GetAttr(Index: Integer): string; override;
function GetItemAttr(Index, ItemIndex: Integer): string; override;
public
...
end;
检索列数,列标题和集合项的列值。
现在我想编辑属性单元格。很有趣在这里停下来,我自己写了一个完整的收藏编辑器(也许是作为ColnEdit.pas单元中的TCollectionEditor的副本或代号)?
我希望有更简单的东西,但在构建复杂的TCollectionEditor的例子中我很有意思。
Ciao Heinz Z.
答案 0 :(得分:2)
这里的目的是将这些额外的列属性作为已发布的属性提供给TCollectionItem本身。因此,当您选择项目时,它会被选中到对象检查器中,然后您可以在其中编辑和更改值。
只需创建TCollectionItem的后代并发布代表您想要编辑的额外属性的属性。确保在构造TCollection后代时,指定要实例化的TCollectionItem类型。