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

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

11 Июль 2020, 13:15 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Часто задаваемые вопросы по LibreOffice и Apache OpenOffice.org
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: 1   Вниз
  Печать  
Автор Тема: Ошибка в стандартной функции?  (Прочитано 557 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Tigrik
Форумчанин
***
Offline Offline

Сообщений: 94


« Стартовое сообщение: 18 Май 2020, 19:42 »

Здравствуйте!

Работаю в LibreOffice Версия: 6.4.3.2 (x64).

Случайно обнаружил один из таких моментов.
Встроенные Макросы и диалоги LibreOffice:
В библиотеке: "FormWizard" в модуле: "tools" есть функция:
Код:
Function GetPoint(xPos, YPos) as New com.sun.star.awt.Point
Dim aPoint as New com.sun.star.awt.Point
aPoint.X = xPos
aPoint.Y = yPos
GetPoint() = aPoint
End Function

При объявление функции заявлена переменная YPos, а используется yPos (насколько я понимаю, получается, что это две разные переменные) - это ошибка ? Или я что-то путаю?
Могу ли я, вообще, изменять (исправлять) встроенные макросы и диалоги (понятно, что если уверен на 200%)?

Спасибо.
Записан
rami
Гуру
*******
Offline Offline

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


MacBook Pro, LibreOffice и Apache OpenOffice


« Ответ #1: 18 Май 2020, 20:04 »

StarBasic не чувствительный к регистру. Конечно, это "ляп", но на работу не влияет.

Могу ли я, вообще, изменять (исправлять) встроенные макросы и диалоги (понятно, что если уверен на 200%)?
Они защищены от изменений. В принципе можно отредактировать файл с макросами в пакете LibreOffice, но при обновлении офиса должно слетать.
Записан

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

Сообщений: 1 213


« Ответ #2: 18 Май 2020, 20:11 »

Это безобидная опечатка т.к. имена переменных в LO Basic нечуствительны к регистру. yPos и YPOS - одна и та же переменная:
Код:
Sub Main
yPos = 5
print(YPOS)
End Sub

Подобный разнобой написания не нов (например есть в 1С), но он ужасен, т.к. порождает разнонаписанные сущности.

В других языках программирования - не так, даже в злейшем конкуренте - VBA (он меняет регистр символов имя переменной во всем модуле при её изменении где-либо).

Менять в "фабричных" макросах можно, но правильнее все-таки использовать их без изменения т.е. просто вызывать их из своих макросов, используя то, что они предоставляют. Это парадигма старого доброго процедурного/структурного программирования, когда вы не изобретаете код и алгоритмы "по буквам", а собираете его максимально из готовых функций и процедур.
Записан

Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...
Tigrik
Форумчанин
***
Offline Offline

Сообщений: 94


« Ответ #3: 18 Май 2020, 20:24 »

Благодарю за ответы.
Записан
mikekaganski
Гуру
*******
Online Online

Пол: Мужской
Расположение: Хабаровск -> Москва
Сообщений: 1 921


« Ответ #4: 18 Май 2020, 20:28 »

Могу ли я, вообще, изменять (исправлять) встроенные макросы и диалоги (понятно, что если уверен на 200%)?

Можете! И Вам будут благодарны за это. Например, здесь Вы вполне можете поправить это в исходном коде - есть даже русскоязычный мануал, как это сделать из WebUI.
Записан

С уважением,
Михаил Каганский
kompilainenn
Мастер
*****
Offline Offline

Сообщений: 2 975



« Ответ #5: 18 Май 2020, 20:54 »

есть даже русскоязычный мануал, как это сделать из WebUI.
Внимание! Мануал устарел! После обновления gerrit процесс стал выглядеть иначе!
Записан

Поддержать разработчиков LibreOffice можно тут, а наш форум вот тут
mikekaganski
Гуру
*******
Online Online

Пол: Мужской
Расположение: Хабаровск -> Москва
Сообщений: 1 921


« Ответ #6: 18 Май 2020, 21:39 »

Внимание! Мануал устарел! После обновления gerrit процесс стал выглядеть иначе!

Я даже не могу представить, кто знает этот процесс и мог бы сделать его обновлённую версию... Подмигивающий
Записан

С уважением,
Михаил Каганский
kompilainenn
Мастер
*****
Offline Offline

Сообщений: 2 975



« Ответ #7: 18 Май 2020, 22:04 »

Я даже не могу представить, кто знает этот процесс и мог бы сделать его обновлённую версию... Подмигивающий
Внимание! Мануал обновлён и им можно пользоваться!
Записан

Поддержать разработчиков LibreOffice можно тут, а наш форум вот тут
Страниц: 1   Вверх
  Печать  
 
Перейти в:  

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