F
forlov
Unregistered / Unconfirmed
GUEST, unregistred user!
如:
A窗体与B窗体是继承关系, B继承A。
A窗体的单元文件中有如下代码
Procedure IndividualDesign; Dynamic;
Begin
IndividualDesign;
for i:=0 to Self.ComponentCount-1 do
If Self.Components is TDataSource Then
(Self.Components as TDataSource).DataSet.AfterInsert:=AfterInsert;
end
这用来对数据集加挂一个新增后事件,用于处理字段的默认值。
B窗体单元文件中就有如下代码用来自动产生相应控件。
Procedure IndividualDesign; Overload; //声明
Procedure IndividualDesign;
var DetailDS:TDataSource;DetailQry:TMSQuery;
begin
DetailDS:=TDataSource.Create(Self);
DetailQry:=TMSQuery.Create(Self);
end
根据继承关系, 子类窗体在执行“产生控件”的代码后, 在父类窗体的代码才会执行“加挂事件”的代码。 但是这样的结果是,子类窗体的实例没加挂上事件。
这是什么原因, 大家帮忙分析分析。
A窗体与B窗体是继承关系, B继承A。
A窗体的单元文件中有如下代码
Procedure IndividualDesign; Dynamic;
Begin
IndividualDesign;
for i:=0 to Self.ComponentCount-1 do
If Self.Components is TDataSource Then
(Self.Components as TDataSource).DataSet.AfterInsert:=AfterInsert;
end
这用来对数据集加挂一个新增后事件,用于处理字段的默认值。
B窗体单元文件中就有如下代码用来自动产生相应控件。
Procedure IndividualDesign; Overload; //声明
Procedure IndividualDesign;
var DetailDS:TDataSource;DetailQry:TMSQuery;
begin
DetailDS:=TDataSource.Create(Self);
DetailQry:=TMSQuery.Create(Self);
end
根据继承关系, 子类窗体在执行“产生控件”的代码后, 在父类窗体的代码才会执行“加挂事件”的代码。 但是这样的结果是,子类窗体的实例没加挂上事件。
这是什么原因, 大家帮忙分析分析。