データ リンクの初期化

提供: RAD Studio
移動先: 案内検索

データ リンクの追加 への移動


データ対応コントロールでは、その存続期間を通して、データ リンクへのアクセスが必要なため、コントロール自身のコンストラクタの一部としてデータ リンク オブジェクトを作成し、また、コントロール自身が破棄される前にデータ リンク オブジェクトを破棄する必要があります。

以下では、カレンダーの Create メソッドと Destroy メソッドをオーバーライドして、データ リンク オブジェクトの作成と破棄をそれぞれ行います。

type
  TDBCalendar = class(TSampleCalendar)
  public                                  { constructors and destructors are always public }
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
    .
    .
    .
  end;
.
.
.
constructor TDBCalendar.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);                  { always call the inherited constructor first }
  FDataLink := TFieldDataLink.Create;                     { construct the datalink object }
  FDataLink.Control := self;                {let the datalink know about the calendar }
  FReadOnly := True;                                                { this is already here }
end;
destructor TDBCalendar.Destroy;
begin
  FDataLink.Free;                                  { always destroy owned objects first... }
  inherited Destroy;                                   { ...then call inherited destructor }
end;
class PACKAGE TDBCalendar : public TSampleCalendar
{
public:
    virtual __fastcall TDBCalendar(TComponent *Owner);
    __fastcall ~TDBCalendar();
};
__fastcall TDBCalendar::TDBCalendar(TComponent* Owner) : TSampleCalendar(Owner)
{
    FReadOnly = true;
    FDataLink = new TFieldDataLink();
    FDataLink->Control = this;
}
__fastcall TDBCalendar::~TDBCalendar()
{
    FDataLink->Control = NULL;
    FDataLink->OnUpdateData = NULL;
    delete FDataLink;
}

これで、データ リンクが完成しましたが、リンク先のフィールドから読み取るデータをコントロールにまだ指示していません。次のセクションでは、その方法について説明します。

関連項目