标题:如何定义全局变量数组?
只看楼主
lxd1260
Rank: 1
来 自:湖北武汉
等 级:新手上路
帖 子:31
专家分:0
注 册:2010-8-20
结帖率:50%
已结贴  问题点数:10 回复次数:3 
如何定义全局变量数组?
我在VFP中想定义一个数组,而且是全局变量,我在表单的form的init方法中用dimension a_str(12)定义了数组,但在form的控件command1的click事件上对a_str(11)赋值时,报下标超界。
我在表单的form的init方法中用public a_str(12)声明,再用dimension a_str(12)定义数组,但在form的控件command1的click事件上对a_str(11)赋值时,仍然报下标超界。
各位大侠,该如何定义啊?
搜索更多相关主题的帖子: 变量 全局 定义 
2010-09-12 17:46
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
得分:5 
定义全局变量或数组。下面是 2 个版本的语法。


PUBLIC MemVarList


PUBLIC [ ARRAY ] ArrayName1( nRows1 [ , nColumns1 ] ) [, ArrayName2( nRows2 [, nColumns2 ] ) ] ...
  [AS type [OF ClassLib]]


参数
PUBLIC MemVarList
指定要初始化并指派为全局的一个或多个内存变量。用逗号分隔 MemVarList 中的多项。单个字母 A 到 J 和 M 是保留字,且不能用来作为内存变量名。
PUBLIC [ ARRAY ] ArrayName1( nRows1 [, nColumns1 ]?) [, ArrayName2( nRows2 [, nColumns2]?)] ...
指定要初始化并指派为全局的一个或多个数组。有关数组的更多信息,请参见DIMENSION 命令.
[ AS type [OF ClassLib] ]
指定内存变量或数组的数据类型,和内存变量或数组所基于的、包含 type 类型描述的类型库。可以用 AS 子句执行强类型。只有当其为强类型时,智能感应功能才可用于对象和变量引用。更多的信息,请参见 如何对类、对象和内存变量代码执行强类型。
说明
您可以在当前 Visual FoxPro 工作期运行的任何程序中使用和修改全局变量和数组。

除了全局内存变量 FOX 和 FOXPRO 初始化为真(.T.)之外,任何用 PUBLIC 创建的内存变量和数组都被初始化为假(.F.)。根据运行的 Visual FoxPro 版本,您可以使用全局变量 FOX 和 FOXPRO 有条件的运行代码。

注意:
在早期版本中使用全局变量 FOX 和 FOXPRO 来分别侦测早期版本的 FoxBASE 和 FoxPro。
 

必须在赋值之前声明所有想要作为全局的内存变量或数组。如果在程序中赋值给内存变量或数组,然后使用 PUBLIC 声明为全局,则 Visual FoxPro 将产生一条语法错误。

从“命令”窗口中创建的内存变量或数组自动声明为全局。

示例
  复制代码
SET TALK OFF
PUBLIC val1,val2
val1 = 10
val2 = 15

DO down
? val1
? val2

RELEASE ALL    && 仅释放私有内存变量
DISPLAY MEMORY LIKE val?
RELEASE val1,val2  && 全局内存变量必须明确的释放
DISPLAY MEMORY LIKE val?

PROCEDURE down
PRIVATE val1
val1 = 50
val2 = 100
? val1
? val2
RETURN
2010-09-12 20:45
lxd1260
Rank: 1
来 自:湖北武汉
等 级:新手上路
帖 子:31
专家分:0
注 册:2010-8-20
得分:0 
回复 2楼 tlliqi
非常感谢!
2010-09-12 21:37
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:396
帖 子:11713
专家分:43267
注 册:2006-5-13
得分:5 
用public定义数组,不要用dimension定义数组,尤其是在高版本的VFP中需要这样做。

活到老,学到老! http://www. E-mail:hu-jj@
2010-09-13 06:52



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-320218-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.338747 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved