比较菜的问题:子窗口要做相同的操作,但是操作对象不同,祖先窗口中应该怎么处理?(50分)

  • 主题发起人 主题发起人 netCobra
  • 开始时间 开始时间
N

netCobra

Unregistered / Unconfirmed
GUEST, unregistred user!
比如每一个子窗口中都要对一个ADOQuery进行Insert、Update等一样操作,但是操作对象不同,我想用窗口继承来实现,但是不知道在祖先窗口中应该怎么写?

请各位富翁指点一二。
 
你在祖先窗口里放一个ADOQUERY,并写入相应操作,其继承的窗口不就都有了吗?
 
不需要用到窗体继承吧,这样就可以了啊:

procedure TForm1.MyInsert(aADOQuery: TADOQuery);
begin
aADOQuery.Insert;
end;

调用: MyInsert(Form2.ADOQuery);
 
TForm1=Tclass(TForm)
public
Procedure A;virtual;
...
end;
TForm2=TClass(TFom1)
public
procedure A;override;
end;

在工具條上操作
if ActiveMdichild is tForm1 then
TForm1(ActiveMdichild).A
//這里就可以調用了。
不知道你有沒有明白我的意思。
 
谢谢各位。
To thinknet:我也想过这样子做,但是问题在于这个AdoQuery不会放在这个Form里面(既不能在祖先窗口里面放,也不能在子窗口里面放)。
所以我才犯难的。

To HeXiang Lee:我看明白了,你的意思是用多态是吗?这倒也是一个办法,我回去先试试。
 
父窗体放入ADOQUERY, 放入AcitonList, 通过Action来操作ADOQUERY

继承的子窗体设计时对各自的ADOQUERY赋值

 
To catfox:看不明白你是什么意思,能说具体一点吗?
 
后退
顶部