我在一个公共Unit中定义了一个SysCode变量,如下:
Unit AppUtils;Interface...
var
SysCode: String;Implementprocedure InitVar
begin
SysCode := '0001';
end;end.随后在Form1中使用它,
Form2.OpenBarcode(SysCode);//此时跟踪SysCode的值为‘0001’
参数传递之后的值(即在OpenBarcode内形参的值)为‘’,但
Form2.OpenBarcode(AppUtils.SysCode);//此时跟踪SysCode的值为‘0001’
则一切正常,请问是什么原因,非常感谢!
Unit AppUtils;Interface...
var
SysCode: String;Implementprocedure InitVar
begin
SysCode := '0001';
end;end.随后在Form1中使用它,
Form2.OpenBarcode(SysCode);//此时跟踪SysCode的值为‘0001’
参数传递之后的值(即在OpenBarcode内形参的值)为‘’,但
Form2.OpenBarcode(AppUtils.SysCode);//此时跟踪SysCode的值为‘0001’
则一切正常,请问是什么原因,非常感谢!
如果Form2.OpenBarcode(SysCode);语句在编译中可通过的话,先查查是不是本单元定义了SysCode变量,说不定该SysCode是form2.SysCode,而不是AppUtils.SysCode。
To sysu(死树):第一,我已在整个Project中搜索了,只有AppUtils.pas中定义了SysCode,
第二,我想即使Form1中也定义了一个SysCode,当程序执行到
Form2.OpenBarcode(SysCode),
此时跟踪SysCode的值为‘0001’,那么不管是哪个SysCode,‘0001’都应该传入OpenBarcode的,是吗?能帮忙解释吗?