3

我想编写一个嵌入其他组件的复杂组件。但我不确定我是否能够通过对象检查器连接到这些组件。

为了澄清,想象一个包含TDataSources. 这些 DataSource 组件归该组件所有,在表单上不可见。

现在我想将 a 连接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 回答