Глобальный массив в реальном базовом - PullRequest
1 голос
/ 08 января 2010

Какие-нибудь советы по созданию глобального массива для использования в проекте realBASIC с использованием «добавить свойство»? На фото ниже моя попытка.

http://i17.photobucket.com/albums/b52/orubap/basic.jpg ( редактировать : недействительная ссылка)

Использование camModel (1) компилируется и запускается, но ничего не возвращает. Использование camModel (4) выдает ошибку за пределами допустимого, поэтому я предполагаю, что я на полпути.

Предложения

Ответы [ 2 ]

2 голосов
/ 08 января 2010

Несмотря на то, что код компилируется, это неверный способ инициализации массива. По крайней мере, в руководствах это нигде не упоминается. Я бы сказал, что компилятор тихо отказывает на этом, а не отмечает его как ошибку. Вам нужно будет поместить значения с помощью метода 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 голос
/ 02 октября 2012

Если вы хотите получить доступ к глобальной переменной, используя функцию «Добавить свойство», просто создайте новый модуль. Затем вы можете добавить свойство в модуль, к которому можно получить доступ из любого места.

Чтобы сохранить чистоту вашего пространства имен, вы можете ограничить доступ к свойству. Global позволит вам получить доступ к свойству, просто используя YourVariableName, но вы также можете изменить права доступа на защищенные (желтый треугольник), поэтому вам нужно будет набрать YourModuleName.YourVariableName для доступа к переменной. Он немного чище.

Таким образом, вы можете легко создать глобальный массив, создав модуль, затем щелкнув Добавить свойство и объявив YourArrayName(-1) как Integer, например. Вы можете добавлять, удалять и изменять любые элементы в массиве, используя стандартные функции массива (ubound, append, remove и т. Д.).

...