具有可编辑列的TCollection PropertyEditor

时间:2010-02-17 15:58:12

标签: delphi delphi-2010 propertyeditor tcollection townedcollection

对于我自己的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.

1 个答案:

答案 0 :(得分:2)

这里的目的是将这些额外的列属性作为已发布的属性提供给TCollectionItem本身。因此,当您选择项目时,它会被选中到对象检查器中,然后您可以在其中编辑和更改值。

只需创建TCollectionItem的后代并发布代表您想要编辑的额外属性的属性。确保在构造TCollection后代时,指定要实例化的TCollectionItem类型。