对于Delphi XE6,我正在创建一个名为TAccountSearch的类。它具有少量属性和一类TObjectList。我的问题是我似乎无法将TObjectList类暴露为属性。
Code Snippet ...创建我将用于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定义,则该属性被视为只读
那是准确的吗?这是制作只读属性的正确方法吗?
答案 0 :(得分:3)
您可以访问实例变量zList
以获取对内部存储的访问权限:
property MyList: TObjectList<TSearchHits> read zList write zList;
如果您需要安装程序,请使用write SetMyList
。
您也可以使用getter函数来获取访问权限:
private
function GetMyList: TObjectList<TSearchHits>;
published
property MyList: TObjectList<TSearchHits> read GetMyList write SetMyList;
其中getter函数将被写为类似
function TAccountSearch.GetMyList: TObjectList<TSearchHits>;
begin
Result := zList;
end;
实现只读属性的方法只是省略write
部分。
property MyList: TObjectList<TSearchHits> read zList;