1

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

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

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

建议?

4

2 回答 2

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")

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

于 2010-01-08T14:34:46.160 回答
1

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

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

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

于 2012-10-02T00:10:24.453 回答