threadvar
zx,zy,word,word2:double;procedure guocheng23();
Begin
If (zx>word) and (zy<word2) then
word:=word+3;
End;zx,zy是一个线程内的全局变量,zx,zy的值是在另外一个过程guocheng22()中得到的,这样编译的时候会产生内部错误,找了半天的原因,发现如果在guocheng23中再重新声明一个变量zx,zy,就不会产生错误,可是zx,zy这2个变量是全局的,该怎么办呢?
//**********下面是在过程中重新声明后的guocheng23*****************
procedure guocheng23();
Var
zx,zy:double;
Begin
If (zx>word) and (zy<word2) then
word:=word+3;
End;
zx,zy,word,word2:double;procedure guocheng23();
Begin
If (zx>word) and (zy<word2) then
word:=word+3;
End;zx,zy是一个线程内的全局变量,zx,zy的值是在另外一个过程guocheng22()中得到的,这样编译的时候会产生内部错误,找了半天的原因,发现如果在guocheng23中再重新声明一个变量zx,zy,就不会产生错误,可是zx,zy这2个变量是全局的,该怎么办呢?
//**********下面是在过程中重新声明后的guocheng23*****************
procedure guocheng23();
Var
zx,zy:double;
Begin
If (zx>word) and (zy<word2) then
word:=word+3;
End;
http://topic.csdn.net/u/20100820/18/8ad25047-86b5-47c3-8e28-c9afda69bc79.html
在线程里不算全局变量吧?你设置成整个程序的全局变量应该就可以了
换成 If (zx-word >0) and (word2- zy > 0) then
就可以了。但愿你这代码只是测试用, guocheng22,23,这种命名都有啊。
word是一个Delphi的简单类型,不要用这样的名字。
谢谢,原来double类型不能直接比较啊,我以为他们的类型相同是可以直接比较的呢
这是我在stackoverflow就这个问题的提问,你可以看一下。