比如,我写一个MyEdit = class(TEdit),加了一个DataSource和一个DataField属性,(类似DBEdit的控件),当选择了DataSource属性后,我的DataField自动从DataSource的DataSet中读字段过来(假设已经有并静态的加到我的Dataset字段列表中了),但我怎么实现,我的程序执行过程中,DataSet.Next时,该Edit里面的值会随着记录的变化而变化呢?(像DBEdit那样),别让我从DBEdit继承哦!我下面的代码不行!!!
procedure TtfEdit.SetDataSource(Value: TDataSource);
begin
FDataSource := Value; try
Self.DataField := FDataSource.DataSet.FieldList.Fields[0].DisplayName;
FDataSource.DataSet.AfterOpen := DataSetOpen;
FDataSource.DataSet.AfterScroll := DataSetOpen;
FDataSource.DataSet.AfterClose := DataSetClose;
except
on e :Exception do
showmessage('Error : ' + e.Message);
end;
end;
难道不是在这个属性更改时写????
procedure TtfEdit.SetDataSource(Value: TDataSource);
begin
FDataSource := Value; try
Self.DataField := FDataSource.DataSet.FieldList.Fields[0].DisplayName;
FDataSource.DataSet.AfterOpen := DataSetOpen;
FDataSource.DataSet.AfterScroll := DataSetOpen;
FDataSource.DataSet.AfterClose := DataSetClose;
except
on e :Exception do
showmessage('Error : ' + e.Message);
end;
end;
难道不是在这个属性更改时写????
解决方案 »
- clientdataset1不能修改数据?
- 请教个问题!
- cxgrid boolean类型 无法自动更新
- IP转换器问题
- 老大们,,,,给写点代码,,如何定义一个事件,,参数是string ,,如何触发,如何调用
- 我是delphi初学者~~~~~~`放分~~~~~~~~~~~
- 怎么通过程序去掉98中的将“将你的计算机转入休息状态”去掉;或点击此项时捕获到他的消息?
- faltbutton的问题!为什么总会触发一个mouseleave的事件噢!?
- 我做了一个小软件里边有百十条数据,用自定义数据文件好还是用mdb数据库好
- SMTP服务认证--------高手求救
- 200分,类似于 vb中的spread 网格组件,FOR delphi7.0版本
- 像Outlook的窗体结构采用的是什么框架
EDIT.TEXT:=当前记录指定字段的值
begin
for I := 0 to FDataSources.Count - 1 do
TDataSource(FDataSources[I]).DataEvent(Event, Info);
if FDesigner <> nil then FDesigner.DataEvent(Event, Info);
end;
begin
if Event = deUpdateState then UpdateState else
if FState <> dsInactive then
begin
NotifyDataLinks(Event, Info);
case Event of
deFieldChange:
if Assigned(FOnDataChange) then FOnDataChange(Self, TField(Info));
deRecordChange, deDataSetChange, deDataSetScroll, deLayoutChange:
if Assigned(FOnDataChange) then FOnDataChange(Self, nil);
deUpdateRecord:
if Assigned(FOnUpdateData) then FOnUpdateData(Self);
end;
end;
end;