程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> 第十九章-Delphi自定義部件開發(三)(6)

第十九章-Delphi自定義部件開發(三)(6)

編輯:Delphi

⑶ 初始化DataLink

在數據相關控制在其存在的期間要不停地訪問DataLink對象,因此,必須在其構建函數中創建DataLink創建並且在析構時,撤消DataLink對象,因此要覆蓋日歷的Create和Destroy方法。

type

TDBCalendar=class(TCalendar)

public

constructor Create(Aowna: TComponent); override;

destructor Destroy; override;

end;

constructor TDBCalendar Create (Aowner: TComponent);

begin

inherited Create(AOwner);

FReadOnly := True;

FDataLink := TFieldDataLink.Create;

end;

destructor TDBCalendar Destroy;

begin

FDataLink.Free;

inherited Destroy;

end;

現在,部件已擁有完整的DataLink,但部件還不知從相聯的域中讀取什麼數據。

19.3.1.4 響應數據變化

一旦控制擁有了數據聯接(DataLink)和描述數據源和數據域的屬性。就需在數據記錄改變時響應域中數據的變化。

DataLink對象都有個名為OnDataChange的事件。當數據源指示數據發生變化時,DataLink對象調用任何OnDataChange所聯接的事件處理過程。

要在數據改變時更新數據,就需要給DataLink對象的OnDataChange事件增加事件處理過程。

下面聲明了DataChange方法,並將其賦給DataLink對象的OnDataChange事件:

type

TDBCalendar=class(TCalendar)

private

procedure Datachange(Sender: TObject);

end;

constructor TDBCalendar Create(AOwner:TComponent);

begin

inherited Create(AOwner);

FReadOnly := True;

FDataLink := TFieldDataLink.Create;

FDataLink.OnDataChange := DataChange;

end;

destructor TDBcalendar.Destroy;

begin

FDataLink.OnDataChange := nil;

FDataLink.Free;

inherited Destroy

end;

procedure TDBCalendar.DataChange(Sender: TObject);

begin

if FDataLink.Filed=nil then

CalendarDate := 0;

else

CalendarDate := FDataLink.Field.AsDate;

end;

;

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved