为何不能设全局数组?(100分)

  • 主题发起人 主题发起人 denling
  • 开始时间 开始时间
D

denling

Unregistered / Unconfirmed
GUEST, unregistred user!
我在implement 中设数组变量,但在各过程中对这些变量进新行操作后,
但一出过程 ,数组变量中的值就没有了。
难道只能用function?
 
又来一个???
 
我认为是可以的,如果你把它定义成全局变量的话!我不知道您是怎么定义的?
我写了一个例子您可以参考一下:<a href=http://www.nease.net/~lgldj/array.zip>array.zip
 
我认为是可以的,如果你把它定义成全局变量的话!我不知道您是怎么定义的?
我写了一个例子您可以参考一下:<a href=http://www.nease.net/~lgldj/array.zip>array.zip
 
denling,快找找斑竹,把100分要回去,丢了太冤枉!
 
太恐怖了!就这样来了200分。
早晚我这个位子要不住了 :(

看来速度还是我们这个论坛的一个不小问题,
应该怎么样提示"尽量不要按两次"之类的话呢?
 
在 Implementation 中定义数组应该没有问题, 如果你遵循 Delphi Pascal 的规
则的话, 你所说的当 procedure 操作后数值就没了是不应该发生的。不知道你的程
序是怎样写的,给出几点意见供参考:

1。你是否在 procedure 中改变了数组得值
2。数组是否在使用它的 procedure 之前声明并赋了值
3。程序中是否使用了相同的变量名
4。数组名称是否与系统定义的全局变量重名
5。过程中是否调用了其他的函数/过程改变了数组的内容
 
问题很奇怪,希望能把你写的例子贴上来,也好让大家分析。
 
如果数组是静态的如 A:array[0..100] of integer

在过程调用中,把A当参数传进去,出过程是数据会没有的,
应声明为 var A

如果数组是动态的如 A:array of integer

在过程中改变数据,出过程后数据不会丢.
 
try put the array into the var
before the implementation
that's ok
 
我以前遇到过, 除了以上的建议外, 你还应该检查你的程序在那个地方有数组越界
我以前就是这样错的
 
procedure A(var pram:ARR);
procedure B(pram:ARR)

调用 A后,A对pram的操作能返回,调用B却不能!
 
我定义全局变量全在 Implementation 之前,即
Var
Form1:TForm;
MyArray:Array[X..Y] of ArrayType;
.
.
.
在各个Form 中定义的均可调用(相互),保证没问题
 
出什么错?提示?
 
this problem has already been resolved early,
denling send it twice,

so I decide to complete it, :)
add every one points, :)
 
this problem has already been resolved early,
denling send it twice,

so I decide to complete it, :)
add every one points, :)
 
后退
顶部