我在做一个数据库的应用软件。主窗体用来显示数据,在其中我定义了Query1,dataset为Query1,然后我做了一个子窗体Form2,用来选择查询条件,本来想在其中引用Query1,但是出错,于是我又在Form2中定义了Query2,用Query2来查询,但是怎样将Query2查询的结果返回到主窗体,并显示出来呢?请教各位大侠。或者能解决在Form2中引用Query1更好啊!

解决方案 »

  1.   

    你在Form2中使用Form1的Query1出错的原因是你没有在Form2中引用Form1的单元
    File-->Use Unit...-->选择Form1的单元,Ok,就可以在Form2中引用Form1中的Query1了
      

  2.   

    还是引用query1吧,你可以把相应的query等数据控件放在一个datamoudle中,这样调用维护能简单一些
      

  3.   

    var
      SetWavFrm :TSetWavFrm;
      value1 :string;
    begin
      SetWavFrm :=TSetWavFrm.Create(nil);
      value1 :=SetWavFrm.Query2.fieldbyname('id').asstring;
      

  4.   

    我的做法是将子窗体Form2中的查询条件组合成查询语句返回主窗体query1,进行查询,
    你也可以在查询窗体关闭后,在Form2.free之前
    query1.sql:=Form2.Query2.sql;
    query1.ExecSQL;
      

  5.   


    不建议这样引用Form2是查询条件,很明显应该是从主窗体弹出的,就是说主窗体已经引用了Form2单元
    应该避免这样相互引用!!!
      

  6.   

    我也想过将查询条件返回,但是我的查询按钮在Form2中啊,如果返回参数的话,还需要再在主窗体中触发一个事件啊,对了,关闭窗体能触发一个事件吗?
      

  7.   

      Form := TFormCustomSelect.Create(self);
      if(Form.ShowModal=mrOK) then
      begin
      
      end把子窗体的莫个按钮设成mrok