Delphi制作数据感知控件之浮想联翩(2)

2008-04-09 04:28:02来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

不过,该控件并不能真正与数据库相连,只是一个样子而已,要真正实现功能,我们需要添加代码,这时候我们用到了一个重要的类TfieldDataLink。

它是控件内部的数据联接对象,从TDataLink继承下来,它的作用是与TDataSource组件相互通信,连接单个字段进行数据提取。我们将要处理这个对象的OnDataChange事件,这样,当字段或记录有所改变时就会得到通知,进行相应的数据处理。Ok,我们声明对象并创建:

private域声明 FDataLink:TFieldDataLink;构造函数中创建

constructor TMyDataBaseEdit.Create(AOwner: TComponent);

begin

inherited;

FDataLink := TFieldDataLink.Create;

FDataLink.OnDataChange := DataChange;

end;

DataChange是我们private域声明的一个过程:procedure DataChange(Sender: TObject);这里面实现了我们这个控件的实际功能,并和FDataLink.OnDataChange事件相连。创建成功之后我们实现GetDataSource、SetDataSource函数过程:

function TMyDataBaseEdit.GetDataSource: TDataSource;

begin

Result := FDataLink.DataSource;

end;

procedure TMyDataBaseEdit.SetDataSource(const Value: TDataSource);

begin

if not (FDataLink.DataSourceFixed and (csLoading in ComponentState)) then

begin

FDataLink.DataSource := Value;

end;

if Value <> nil then

begin

Value.FreeNotification(Self);

end;

end;

关联控件的销毁

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:把图标存储在SHELL32.DLL

下一篇:动态数组介绍----Delphi