Delphi的公用变量是怎么使用的?(50分)

  • 主题发起人 主题发起人 hero_
  • 开始时间 开始时间
H

hero_

Unregistered / Unconfirmed
GUEST, unregistred user!
我在一个form里面放入了两个TADOQuery控件,想在另外一个form里面调用它们,应该
怎么做?直接调用似乎不行。
 
在另一个Form里引用这个Form的unit
如:
var
Form1: TForm1;

implementation

uses Unit2; //引用另一个窗体的unit,可以按Alt+F11查找

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
begin
Form2.ADOQuery1.Close;//这里可以调用,前面加上另一个窗体的窗体名
。。。。。

end;
 
对,或者
with form2 do
begin
adoquery1.close;
....
end;
 
我也是按照上面方法来做,但是引用不了啊。估计是不是凡是放入form的控件都是私人成员?
因为我在form里面的public定义的方法都可用。
 
同意svw0506的说法
 
在Unit里面,如果定义变量或者函数是不是只能放在var后面?否则其他Unit无法调用这些
变量或者函数?
 

例如:
对于下面这样一个单元
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls,uEvPrint, Db, DAODataset, DAOTable, DAODatabase;

type
TForm1 = class(TForm)
Button1: TButton;       //可以调用
Button2: TButton;   //可以调用 
RadioGroup1: TRadioGroup;   //可以调用
private
EvPrint:TEvPrint; //不可以调用
{ Private declarations }
public
sTmp:String; //可以调用
{ Public declarations }
end;

var
Form1: TForm1; //可以调用
var s:string; //可以调用
const
K='OK'; //可以调用
implementation

var j:integer; //可以调用

如果unit2 uses unit1
调用unit1的东东时
除了s,k可以直接调用,即s:='kk';
其它的调用要Form1.sTmp这样调用

 
还是不行。拖进去unit2里面的控件,在unit1都用不了,我刚刚把button也拉进来,
但在unit1里面我打“unit2.”列出来的只是var中的变量,
type
TForm1 = class(TForm)
Button1: TButton;       //为什么调用不了?
Button2: TButton;   //为什么调用不了?


 
uses Unit2; //引用另一个窗体的unit

up
 
谢谢大家。
 
uses Unit2; //引用另一个窗体的unit

引用时加上ADOQuery所在窗体的名称
 
我得到了启发,谢谢!
 
后退
顶部