3

他のコンポーネントを組み込んだ複雑なコンポーネントを書きたいと思っています。しかし、オブジェクト インスペクタを介してこれらのコンポーネントに接続できるかどうかはわかりません。

明確にするために、 のリストを保持するコンポーネントを想像してくださいTDataSources。これらの DataSource コンポーネントは、このコンポーネントによって所有され、フォームには表示されません。

これらのデータソースの 1 つに接続したいのTDatasetですが、可能ですか?これらのデータソースは Dataset のプロパティ エディター コンボに表示されますか?

4

1 に答える 1

2

可能ですが、名前を入力 (またはコピー) する必要があります。OI では選択できません。

以下に記述されたコンポーネントを使用して、たとえばDBGridMyComp1.InternalDataSourceのプロパティに入力できます。DataSource

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;
于 2012-11-13T13:27:14.243 に答える