Delphi窗体之间互相调用的简单问题

问题是这样的,我的程序主窗口Form1上面有一个数据连接(ADOCONNECTION1)和ADOQUERY,然后还有一些数据感知组件用于浏览用的,我打算点击From1中的一个“修改数据”按钮,就弹出Form2,在中Form2我打算对其中的某条数据提取出来后进行修改,然后再通知Form1的ADOQUERY刷新数据。

但是这里有一个问题,From1可以 use Form2,然后使用From2.show;,这个没有问题,但是From2是不能 use From1的,这就导致我在From2中无法使用已有的数据连接(ADOCONNECTION1)和ADOQUERY,而且当我修改完数据后也无法调用ADOQUERY.refresh;。

当然了,我也完全可以这样:在From2上再放上单独的(ADOCONNECTION1)和ADOQUERY,然后From1把数据那行的GUID送到Form2中,From2据此读出数据并进行修改,这样看起来基本可以解决数据的录入问题,但是我记得专家说过,一个From上面再放1套数据连接是不正确的,起码是不优化的,所以我想问问一般应该如何处理呢?
再添加一个data module,
把ADOCONNECTION1和ADOQUERY
放在其中
在Form1中写这样的代码:
Form2 := TForm2.Create(Self);
try
  Form2.ShowModal;
  ADOQuery1.Refresh;
finally
  Form2.Free;
end;
麻烦
在Form2 的public 中写上
 property AdoQuery:TadoQuery read FAdoQuery write FAdoQuery;
Form2 := TForm2.Create(Self);
try
  Form2.AdoQuery:=AdoQuery1;
 if Form2.ShowModal= mrok then 
  begin 
    ADOQuery1.Refresh;
  end;
finally
Form2.Free;
end;
原文地址:https://www.cnblogs.com/jijm123/p/10572413.html