竟然会被这个小问题拖了两天,帮我啊,怎么在public定义的全局变量其他单元不能用呢?(100分)

  • 主题发起人 主题发起人 chinlw
  • 开始时间 开始时间
C

chinlw

Unregistered / Unconfirmed
GUEST, unregistred user!
我在unit1中的public中定义了变量,可是在unit3中不能使用,提示我说没有定义,
这是怎么回事啊。
 
unit3里uses 有unit1吗?
 
在unit3 单元use unit1.
其他单元用public以此而行。
 
我也很想帮你
但我暂时还不懂!
 
unit1为FORM1
PUBLIC
AAAA:***
UNIT3
USES UNIT1
用的时候
FORM1.AAA
 
什么叫 public中定义了变量
应当在 Interface 中定义 var,其他单元里 uses Unit1
 
试了各位仁兄的高着,但无一能有效解决,还是不行,my god,谁能来帮我啊,help me
 
if 你的程序是这样定义的:
......
pulic
var1:integer ;
end;
...
then 这样改写:
....
private
Fvar1:integer;
public
property var1:integer; read Fvar1 write Fvar1;
end;
....
or 这样改写
....
private
Fvar1:integer;
procedure setVar1(const Value :integer);//(在后面定义)
public
property var1:integer; read Fvar1 write setvar1;
end;
OK;
....
 
如果要声明整个项目的全局变量和常量的话,它们得在项目文件中声明才可以。
查看项目文件可以使用Project菜单上的"View Source"命令

这样的话,在项目中的任何一个单元都可以使用这些变量或常量了。
 
我同意mbobo的。
例:
unit1为form1
public
aaa :string;





unit2为form2(包含一个label,一个button)

uses unit1
procedure TForm2.Button1Click(Sender: TObject);
begin
form1.aaa:='hello';
label1.caption:=form1.lxp;
end;
 
变量写在 interface 部分
 
var
syste: Tsyste;
变量:类型
即可
 
mbobo说的应该是没问题啊
 
同意z_cd的说法: 应当在 Interface 中定义 var,其他单元里 uses Unit1;
有变量重名时可以如下方法调用:Unit1.变量名



 
奇怪,我用的都没问题。。。。
:-)
 
在unit1中定义如下:
var
Var1: String;

implementation

{$R *.DFM}

然后在unit3中定义如下输入uses unit1:
implementation

{$R *.DFM}
uses unit1
 
同意mbobo和sunhuiNO1
如sunhuino1就不用from1.aaa了!
 
肯定是某个地方错了,让大家在这里瞎猜,你就不能把程序贴出来吗?
 
谢谢,mbobo,hpretty,蓝鸟,zouming,非常谢谢你们。
 
mbobo说的没问题
 
后退
顶部