[РЕШЕНО] LibreOffice Basic Как объявить переменную уровня модуля

Автор ost, 5 апреля 2022, 17:51

0 Пользователи и 1 гость просматривают эту тему.

ost

Доброго. Как (где?) присвоить переменной текстовое значение таким образом, чтобы все процедуры модуля имели возможность читать значение этой переменной?
Делаю как на картинке, получаю ошибку "Синтаксическая ошибка Basic. Ожидается: Sub."

Спасибо. Сори за сумбур.





sokol92

#1
Оператор присвоения должен быть внутри процедуры или функции.

Переменная уровня модуля объявляется оператором Dim. Public переменные видны всем модулям библиотеки.
Владимир.

rami

Цитата: ost от  5 апреля 2022, 17:51Как (где?) присвоить переменной текстовое значение таким образом, чтобы все процедуры модуля имели возможность читать значение этой переменной?
Объявить константу в начале модуля:Const sDbName = "JRIDm64_test"

ost


ost

Цитата: sokol92 от  5 апреля 2022, 19:25
Оператор присвоения должен быть внутри процедуры или функции.

Переменная уровня модуля объявляется оператором Dim. Public переменные видны всем модулям библиотеки.

Видимость на уровне библиотеки даже удобнее. Не понимаю, как проинициализировать такую переменную и в какой момент.

Кусок каталога объектов выглядит так https://yadi.sk/i/TQ8V-yGheDZggw
Пожалуйста растолкуйте.
Пока написал такое, не работающее. https://yadi.sk/i/hghYMNQNsmk0KQ

Спасибо.






sokol92

#5
Так у Вас переменная или константа?
Если константа, то объявляете (пишу по памяти):
Const (как в примерe @Rami) - видна в данном модуле
Public Const - видна всем модулям библиотеки
Global Const - видна всем модулям всех открытых библиотек.

Если переменная, то Вам решать, какой макрос и когда будет ей присваивать значение. Макрос Init в Вашем примере это присвоение производит.

Владимир.

ost

Цитата: sokol92 от  6 апреля 2022, 18:12Так у Вас переменная или константа?

Пазл сошелся. =) Благодарю.