在线,传递参数 ( 积分: 20 )

  • 主题发起人 主题发起人 jialiguo
  • 开始时间 开始时间
J

jialiguo

Unregistered / Unconfirmed
GUEST, unregistred user!
在一个主窗体上有个按妞,按下就显示次窗体,但我还想把主窗体上的DBGRID和一个QRY传递过去?怎么做 ?
 
我认为传统的做法是新建立一个DATAMODULE,2个FORM都在文件头的:implementation下一行加入:uses xxx(datamodule1的文件名);
把用到的QRY都放在DATAMODULE1里面执行,引用是,都要使用:DATAMODULE1.QRY1....

一般我习惯把 DATAMODULE1的NAME改为:DATAM,这样编程写起来容易很多。
 
重载Create();把要传的东西传过去
 
to 就此开始
怎么 重载Create();
 
easy
procedure MyShowModal(aDBGrid: TDBGrid;aADOQuery: TADOQuery);//不回调的
procedure MyShowModal(var aDBGrid: TDBGrid;var aADOQuery: TADOQuery);//回调的
 
http://www.51zhan.com 最好的网址站
http://www.51zhan.com 最好的网址站
http://www.51zhan.com 最好的网址站
 
Constructor Create(aOwer :TComponent; DBGRID :TDBGrid........);
 
to lisongmagic
在主窗体写还是在那里?
procedure MyShowModal(aDBGrid: TDBGrid;aADOQuery: TADOQuery);
to 就此开始
Constructor Create(aOwer :TComponent; DBGRID :TDBGrid........);
写在哪个窗体,怎么知道指定的是什么窗体
 
晕,这个问题,当然是在主窗体 call ,在子窗体 define 自定义方法了
unit Unit1;
...
TForm1 = Class(TForm) //主窗体
...
//这里uses Form2
...
procedure TForm1.OnButton1Click;
begin
Form2.myshowModal(Dataset1,Dbgrid1); //这里调用自己的方法
end;
end;
//////////////////// 子窗体单元
unit unit2;
...
TForm2 = Class(TForm)
procedure Myshowmodal(Dataset:TADOdataset;DBgrid:TDBGrid);
end;
...

procedure TFORM2.Myshowmodal(Dataset:TADOdataset;DBgrid:TDBGrid);
begin
FDBGRID := ....
FDATASet :=
ShowMOdal; //在这里再Show出来,设计期是Visible := false 的 form
end;

说到这么明了,如果还问,跟你急
 
写个方法调用就解决了。
看样子你还有很多问题要待解决呀
 
接受答案了.
 
后退
顶部