2

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 定義を含めないと、プロパティは読み取り専用と見なされます。
それは正確ですか?それは読み取り専用のプロパティを作成する適切な方法ですか?

4

1 に答える 1

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;

ゲッター関数は次のように記述されます

function TAccountSearch.GetMyList: TObjectList<TSearchHits>;
begin
  Result := zList;
end;

読み取り専用プロパティを実装する方法は、単にそのwrite部分を省略することです。

property MyList: TObjectList<TSearchHits> read zList;
于 2014-10-24T16:26:17.267 に答える