真正基本的全局数组

时间:2010-01-08 04:33:16

标签: basic realbasic

使用“添加属性”创建要在realBASIC项目中使用的全局数组的任何提示?下图是我的尝试。

http://i17.photobucket.com/albums/b52/orubap/basic.jpg 编辑:死链接)

使用camModel(1)编译并运行但不返回任何内容。使用camModel(4)会抛出一个越界错误,所以我猜我已经到了一半。

建议?

2 个答案:

答案 0 :(得分:2)

即使代码编译,这也不是初始化数组的有效方法。至少在手册中的任何地方都没有提到这样做。我会说编译器正在悄然失败,而不是将其标记为错误。您必须通过init方法放置值,例如在App.Open中。另外,请不要忘记,即使在初始化期间,数组索引也是基于0的。因此,通过您给出的代码声明三个值的数组属性:

camModel(2) as String

然后在App.Open事件中:

camModel(0) = "Nikon"
camModel(1) = "Sony"
camModel(2) = "Philips"

然而,如果是我这样做,我会声明属性:

camModel(-1) as String

然后使用Array函数填充:

camModel = Array("Nikon", "Sony", "Philips")

这样你可以在以后添加更多的模型,而不必每次都使用数组的边界。

答案 1 :(得分:1)

如果要使用“添加属性”功能访问全局变量,只需创建一个新模块。然后,您可以向模块添加可从任何位置访问的属性。

要使名称空间更清晰,您可能希望限制对该属性的访问。 Global只允许您使用YourVariableName访问该属性,但您也可以将权限更改为受保护(黄色三角形符号),因此您必须键入YourModuleName.YourVariableName才能访问该变量。它让事情变得更加清洁。

因此,您可以通过创建模块,然后单击添加属性并将YourArrayName(-1)声明为Integer来轻松创建全局数组。您可以使用标准数组函数(ubound,append,remove等)添加,删除和修改数组中的任何项目。