Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

22 Май 2022, 13:17 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Вы можете задать вопрос по LibreOffice или Apache OpenOffice без регистрации, используя форму
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: 1   Вниз
  Печать  
Автор Тема: [РЕШЕНО] LibreOffice Basic Как объявить переменную уровня модуля  (Прочитано 796 раз)
0 Пользователей и 1 Гость смотрят эту тему.
ost
Форумчанин
***
Offline Offline

Сообщений: 236


« Стартовое сообщение: 5 Апрель 2022, 17:51 »

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

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






* public_var.png (8.3 Кб, 288x153 - просмотрено 19 раз.)
« Последнее редактирование: 6 Апрель 2022, 18:22 от ost » Записан
sokol92
Опытный пользователь
***
Offline Offline

Пол: Мужской
Сообщений: 909


WWW
« Ответ #1: 5 Апрель 2022, 19:25 »

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

Переменная уровня модуля объявляется оператором Dim. Public переменные видны всем модулям библиотеки.
« Последнее редактирование: 5 Апрель 2022, 19:33 от sokol92 » Записан

Владимир.
rami
Гуру
*******
Offline Offline

Пол: Мужской
Сообщений: 3 140


iMac, LibreOffice и Apache OpenOffice


« Ответ #2: 5 Апрель 2022, 19:31 »

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

ost
Форумчанин
***
Offline Offline

Сообщений: 236


« Ответ #3: 6 Апрель 2022, 16:36 »

Благодарю. Работает.
Записан
ost
Форумчанин
***
Offline Offline

Сообщений: 236


« Ответ #4: 6 Апрель 2022, 16:52 »

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

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

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

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

Спасибо.





Записан
sokol92
Опытный пользователь
***
Offline Offline

Пол: Мужской
Сообщений: 909


WWW
« Ответ #5: 6 Апрель 2022, 18:12 »

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

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

« Последнее редактирование: 6 Апрель 2022, 18:14 от sokol92 » Записан

Владимир.
ost
Форумчанин
***
Offline Offline

Сообщений: 236


« Ответ #6: 6 Апрель 2022, 18:21 »

Так у Вас переменная или константа?

Пазл сошелся. =) Благодарю.
Записан
Страниц: 1   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!