mainform为fsMDIForm,上面有个toolbutton1,对各个fsMDIChild进行数据修改操作,Form1\Form2\Form3...为MDI子窗体
procedure Tmainform.ToolButton1Click(Sender: TObject);
begin
if self.ActiveMDIChild.Name='Form1' then
Form1.ADOQuery1.UpdateBatch();
if self.ActiveMDIChild.Name='Form2' then
Form2.ADOQuery1.UpdateBatch();
if self.ActiveMDIChild.Name='Form3' then
Form3.ADOQuery1.UpdateBatch();
//...
end;
以上的语句能否统一写,不用每个form都写一句

解决方案 »

  1.   


    procedure Tmainform.ToolButton1Click(Sender: TObject);
    begin
      TForm1(self.ActiveMDIChild).ADOQuery1.UpdateBatch();
    end;
      

  2.   

    以上做法仅一个语句即可!无须再作判断。但有个前提,就是每个MDIChild里都有TADOQuery,并且名字相同(就如 ADOQuery1 ),否则,在当前的ActiveMDIChild中没有或名字不同的话,将引发异常。
      

  3.   

    不行啊,大哥,每个form的名称不同啊
      

  4.   

    TADOQuery(TForm(self.ActiveMDIChild.FindComponent('ADOQuery1'))).UpdateBatch();