关于使用“添加属性”创建全局数组以在 realBASIC 项目中使用的任何提示?下图是我的尝试。
http://i17.photobucket.com/albums/b52/orubap/basic.jpg(编辑:死链接)
使用 camModel(1) 编译并运行,但它不返回任何内容。使用 camModel(4) 会引发越界错误,所以我猜我已经完成了一半。
建议?
关于使用“添加属性”创建全局数组以在 realBASIC 项目中使用的任何提示?下图是我的尝试。
http://i17.photobucket.com/albums/b52/orubap/basic.jpg(编辑:死链接)
使用 camModel(1) 编译并运行,但它不返回任何内容。使用 camModel(4) 会引发越界错误,所以我猜我已经完成了一半。
建议?
即使代码可以编译,这也不是初始化数组的有效方法。至少手册中没有提到这样做。我会说编译器在那个编译器上悄悄地失败了,而不是将其标记为错误。您必须通过 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")
这样,您以后可以添加更多模型,而不必每次都使用数组的边界。
如果要使用“添加属性”功能访问全局变量,只需创建一个新模块。然后,您可以将属性添加到可以从任何地方访问的模块。
为了使您的命名空间更干净,您可能希望限制对该属性的访问。Global 将允许您仅使用 访问该属性YourVariableName
,但您也可以将权限更改为受保护(黄色三角形符号),因此您必须键入YourModuleName.YourVariableName
才能访问该变量。它使事情变得更清洁。
因此,您可以通过创建模块轻松创建全局数组,然后单击添加属性并声明YourArrayName(-1)
为Integer
例如。您可以使用标准数组函数(ubound、append、remove 等)添加、删除和修改数组中的任何项目。