困扰已久的窗体继承问题!(100分送人)
在实际应用中遇到窗体继承问题,困扰已久,故在此处发贴,希望能有高手帮助解决!
工程中有两个基类窗体BaseGrid和BaseEdit,分别是一个表格窗体和一个编辑窗体,而且表格窗体与编辑窗体是存在调用和被调用的关系,即在表格窗体上点新增或是修改按钮,会把编辑窗体显示出来进行操作,因为其他窗体基本上都是从这两个窗体继承而来且基本功能相同,故想偷偷懒,只在基类中写事件代码,但又不知该如何写。以下是我的部分代码及说明!
例如有4个继承窗体分别为FrmGrid1,FrmGrid2,FrmEdit1,FrmEdit2
在BaseGrid里写了一个过程,
procedure TFrmBaseGrid.ShowEditForm(FormClass:TFrmBaseEdit;sState:String);
var
Form:TFrmBaseEdit;
begin
Form:=FormClass.Create(application);
with Form do
begin
ActiveDs.DataSet:=QueryGrid;
if sState='sInsert' then
ActiveDs.DataSet.Append
else
ActiveDs.DataSet.Edit;
ShowModal;
end;
end;
然后分别在FrmGrid1,FrmGrid2中调用ShowEditForm(FrmEdit1,'sInsert');ShowEditForm(FrmEdit2,'sInsert');但调用时显示FrmEdit1和TFrmBaseEdit不是同一类,FrmEdit1不是从TFrmBaseEdit继承来的吗,怎么会这样,请高手帮忙指点一下并能给出解决方法