使用“添加属性”创建要在realBASIC项目中使用的全局数组的任何提示?下图是我的尝试。
http://i17.photobucket.com/albums/b52/orubap/basic.jpg (编辑:死链接)
使用camModel(1)编译并运行但不返回任何内容。使用camModel(4)会抛出一个越界错误,所以我猜我已经到了一半。
建议?
答案 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等)添加,删除和修改数组中的任何项目。