2012-11-05 3 views
3

다른 구성 요소가 포함 된 복잡한 구성 요소를 작성하고 싶습니다. 하지만 객체 검사기를 통해 해당 구성 요소에 연결할 수 있을지 확실하지 않습니다.포함 된 구성 요소에 속성을 연결할 수 있습니까?

분명히하기 위해 TDataSources의 목록을 보유하는 구성 요소를 상상해보십시오. 이러한 DataSource 구성 요소는이 구성 요소가 소유하며 양식에는 표시되지 않습니다.

이제이 데이터 소스 중 하나에 TDataset을 연결하고 싶습니다. 이러한 데이터 소스는 데이터 집합의 속성 편집기 콤보에 표시됩니까?

답변

2

가능하지만 이름을 입력하거나 복사해야합니다. OI에서 선택할 수 없습니다.

아래에 기록 된 구성 요소를 사용하여 예를 들어 DBGrid를의 DataSource 특성에 MyComp1.InternalDataSource :

속성 설정이 저장되지 않습니다
uses 
    Classes, DB; 

type 
    TMyComp = Class(TComponent) 
    private 
    FDataSource: TDataSource; 
    public 
    constructor Create(AOwner: TComponent);override; 
    published 
    property DataSource: TDataSource read FDataSource; 
    end; 

procedure Register; 

implementation 

procedure Register; 
begin 
    RegisterComponents('TEST', [TMyComp]); 
end; 

{ TMyComp } 

constructor TMyComp.Create(AOwner: TComponent); 
begin 
    inherited Create(AOwner); 
    FDataSource := TDataSource.Create(Self); 
    FDataSource.Name := 'InternalDataSource'; 
end; 
+0

/를 DFM에 스트리밍, 당신이 그것을 당신이 디자이너에서 양식을 열 때마다 설정해야합니다 그리고 당신은 아직도 그것을 설정해야합니다 그래서 런타임에. – NGLN

+0

객체 DBEdit1 : TDBEdit와 왼쪽 = 40 최고 = 128 폭 = 121 높이 = 21 을 DataField = '이름' 데이터 소스는 = MyComp1.InternalDataSource 끝 저장됩니다하는 surfacedataset에 할당 =입니다 TabOrder 테스트 용으로 구성 요소의 일부로 간주됩니다. – bummi

+0

아, 미안 해요, 내 실수! +1 – NGLN