2014-10-24 2 views
2

Delphi XE6의 경우 TAccountSearch라는 클래스를 만들고 있습니다. 적은 수의 속성과 TObjectList 클래스를 가지고 있습니다. 내 문제는 TObjectList 클래스가 속성으로 노출되도록 만들 수없는 것입니다.클래스 내에서 클래스의 속성을 만드는 방법은 무엇입니까?

코드 조각 ... 나는 지금 TObjectList와의 인스턴스를 포함하는 클래스를 만들 TObjectList와

에 대한
type 
    TSearchHits = class 
    ID: Integer; 
    Name : String; 
    ... 
    end; 

를 사용하는 클래스가 ... 만들기

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 SetMyList 당신이 세터 절차를 필요로하는 경우 :

+2

'속성으로 myList :; '(또는 세터 절차를 필요로하는 경우'SetzList' 쓰기) TObjectList와 는 zList 쓰기 zList 읽어 보시기 바랍니다. –

+0

그게 ... 대답으로 제출하고 그것을 신용 것입니다. 두 번째 질문에 관해서는 읽기 전용 속성을 만드는 적절한 방법입니까? – user1009073

+0

나는 둘 다 내 대답으로 다뤘다. –

답변

3

당신은 내부 저장소에 액세스하기 위해 인스턴스 변수 zList에 액세스 할 수 있습니다. 게터 기능이

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

방법과 같은 읽기 전용 속성을 구축하기 위해 작성한 것

private 
    function GetMyList: TObjectList<TSearchHits>; 
published 
    property MyList: TObjectList<TSearchHits> read GetMyList write SetMyList; 

가 단순히 :

당신은 액세스 할뿐만 아니라 getter 함수를 사용할 수 있습니다 write 부분을 생략하십시오.

property MyList: TObjectList<TSearchHits> read zList;