【发布时间】:2014-12-20 12:17:03
【问题描述】:
对于 Delphi XE6,我正在创建一个名为 TAccountSearch 的类。它有少量的属性,和一个 TObjectList 类。我的问题是我似乎无法将 TObjectList 类作为属性公开。
代码片段...创建我将用于 TObjectList 的类
type
TSearchHits = class
ID: Integer;
Name : String;
...
end;
现在创建包含 TObjectList 实例的类...
type
TAccountSearch = class
private
zSearchPhrase: string;
zList: TObjectList<TSearchHits>;
...
property SearchPhrase: string read zSearchPhrase;
property MyList:TObjectList<TSearchHits> read TObjectList<TSearchHits>;
end;
TAccountSearch.SearchPhrase 是一个有效的属性。 TAccountSearch.MyList 不是....
从 accountSearch 类中,如何让调用程序访问 SearchHits 作为属性?其次,如果我没有在 PROPERTY 行中包含 WRITE 定义,则该属性被认为是只读的。
那准确吗?这是制作只读属性的正确方法吗?
【问题讨论】:
-
property MyList: TObjectList<TSearchHits> read zList write zList;(或write SetzList,如果您需要设置程序)。 -
就是这样...提交作为答案,我会相信它。至于第二个问题,这是创建只读属性的正确方法吗?
-
我在回答中都涵盖了它们。
-
@user1009073 我对某事感到好奇。为什么要将 TObjectList 公开为只读属性?如果您想提供对 TObjectList 对象的只读访问权限(外部代码无法将 TObjectList 的引用更改为指向其他 TObjectList ,那么您可以通过将其声明从私有部分移动到公共部分来简单地公开您的内部 TObjectList 而不是使用属性. 但是,如果您只想将您的 TObjectList(项目)的内容公开给其他代码,则使用索引属性,它将从您的 TObjectList 转发数据。
标签: class delphi properties tobjectlist