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

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

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

Войти
Новости: Вы можете задать вопрос по LibreOffice или Apache OpenOffice без регистрации, используя форму
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: 1   Вниз
  Печать  
Автор Тема: Использование ORE в макросах  (Прочитано 4585 раз)
0 Пользователей и 1 Гость смотрят эту тему.
dr.Faust
Администратор
**
Offline Offline

Пол: Мужской
Расположение: Ростов-на-Дону
Сообщений: 1 340


« Стартовое сообщение: 17 Апрель 2010, 13:14 »

Если вдруг кому-то захочется использовать ORE для своего кода, то нужно помнить следующие:

Большинство функций ORE будут работать даже если библиотека только загружена, но некоторые возможности требуют инициализации библиотеки.
Наиболее полную и правильную загрузку и инициализацию ORE можно выполнить следующим типовым кодом:
Код:
'Option Explicit — не используйте Option Explicit в модуле инициализации
Public Const MyName = "org.mysite.addon.MyApp" ' - имя расширения

Sub OREini_by_MyApp
'Строковые константы GUI
Const tmCriticalError = "Критическая ошибка"
Const mNotORE = "Не найдена библиотека OceanRuntimeEnvironment."
Const mNotIniORE = "Библиотека OceanRuntimeEnvironment работает неправильно."
Const mOldORE = "Требуется библиотека OceanRuntimeEnvironment версии >= "
Const mUEORE = "Непредвиденная ошибка инициализации библиотеки OceanRuntimeEnvironment."
'константы зависящие от расширения
Const my_oreFamily = 1 ' - семейство ORE требующееся для вашего приложения
Const my_oreVersion = 0 ' - минимальная версия ORE требующееся для вашего приложения
Const my_oreSubVersion = 2 ' - минимальная подверсия ORE требующееся для вашего приложения
Const my_oreEdition = 1 ' - минимальная редакция ORE требующееся для вашего приложения
Const my_oreBuild = 1 ' - минимальная сборка ORE требующееся для вашего приложения
On Error GoTo UnknowErr
If oev_FullIni Then 'если библиотека ORE уже полностью инициализирована...
' проверим ее версию:
If my_oreFamily = oec_oreFamily Then ' семейство верное
If my_oreVersion < oec_oreVersion Then
ElseIf my_oreVersion = oec_oreVersion Then ' проверяем младший "разряд"
If my_oreSubVersion < oec_oreSubVersion Then
ElseIf my_oreSubVersion = oec_oreSubVersion Then ' проверяем младший "разряд"
If my_oreEdition < oec_oreEdition Then
ElseIf my_oreEdition = oec_oreEdition Then ' проверяем младший "разряд"
If my_oreBuild <= oec_oreBuild Then
Else
GoTo errVers
End If
Else
GoTo errVers
End If
Else
GoTo errVers
End If
Else
GoTo errVers
End If
Else
GoTo errVers
End If
Else
If BasicLibraries.hasByName("OceanRuntimeEnvironment") Then
'первым делом подгружаем разделяемую библу
BasicLibraries.LoadLibrary("OceanRuntimeEnvironment")
'и реинициализируем её
LoadOceanEnvironment MyName
' проверим ее версию:
If my_oreFamily = oec_oreFamily Then ' семейство верное
If my_oreVersion < oec_oreVersion Then
ElseIf my_oreVersion = oec_oreVersion Then ' проверяем младший "разряд"
If my_oreSubVersion < oec_oreSubVersion Then
ElseIf my_oreSubVersion = oec_oreSubVersion Then ' проверяем младший "разряд"
If my_oreEdition < oec_oreEdition Then
ElseIf my_oreEdition = oec_oreEdition Then ' проверяем младший "разряд"
If my_oreBuild <= oec_oreBuild Then
Else
GoTo errVers
End If
Else
GoTo errVers
End If
Else
GoTo errVers
End If
Else
GoTo errVers
End If
Else
GoTo errVers
End If

Else 'если библиотеки нет
MsgBox mNotORE,16,tmCriticalError
End
End If
If oev_FullInit Then
Else 'если не удалась полная инициализация
MsgBox mNotIniORE,16,tmCriticalError
End
End if
End If
Exit Sub
errVers:
'если библиотека слишком стара
MsgBox mOldORE & my_oreFamily & ":" & my_oreVersion & "." & my_oreSubVersion & "." & my_oreEdition & "." & my_oreBuild,16,tmCriticalError
End
UnknowErr:
MsgBox mUEORE,16,tmCriticalError
End
End Sub
Записан

Свобода информации - свобода личности!
dr.Faust
Администратор
**
Offline Offline

Пол: Мужской
Расположение: Ростов-на-Дону
Сообщений: 1 340


« Ответ #1: 17 Апрель 2010, 13:17 »

Пример расширения использующего некоторые возможности ORE можно найти здесь - http://forumooo.ru/index.php/topic,80.msg485.html#msg485
Записан

Свобода информации - свобода личности!
Страниц: 1   Вверх
  Печать  
 
Перейти в:  

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