全局变量的传递问题,有高手可以帮忙吗?(100分)

  • 主题发起人 主题发起人 shadow9
  • 开始时间 开始时间
S

shadow9

Unregistered / Unconfirmed
GUEST, unregistred user!
unit Unit1;
var
Form1: TForm1;
a:string;//MC32_42: TMC32_42;
data1,data2:Array[0..256]of char;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
status:=0;
st:=get_status(icdev,@status); //检测读写器中是否有卡,
//中间省掉一段读取IC卡data2变量值的过程,条件语句如果有卡就读取,获得IC卡上的值,然后show出form4窗体
a:=copy(data2,1,6);
form4.Show;
end;

===========================
unit Unit4;
user unit1;
procedure RzButton1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);

但是form4窗体中如果用窗体创建事件TForm4.FormCreate中是读取不到data2的值,也就是值为0,不知道为什么,
如果我用TForm4.RzButton1Click事件又可以读到,是不是因为form4的窗体是和form1一起创建的呢,只是隐藏起来?

高手有没有什么办法可以读取全局变量值呢???
 
从代码看不出哪个窗体先创建。
如果Form4的创建时,还没有从卡中读数,你怎么可能知道Data2的值。
理理思路吧
 
你看一下那个工程文件的源码,也就是那个DPR文件,创建顺序不就知道了?
 
如果不插入IC卡的话 form1和form4创建的时候data2的值都是0.

全局变量data2的值是form1.timer一直在读取的。。。
 
是窗体创建顺序的问题
 
Form4不要交给工程自动创建,从Project options 中取消,应该就不会有这个问题了。
 
同意上面的兄弟们
 
后退
顶部