Ошибка в стандартной функции?

Автор Tigrik, 18 мая 2020, 19:42

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

Tigrik

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

Работаю в 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

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

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

economist

Это безобидная опечатка т.к. имена переменных в LO Basic нечуствительны к регистру. yPos и YPOS - одна и та же переменная:

Sub Main
yPos = 5
print(YPOS)
End Sub


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

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

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

Tigrik


mikekaganski

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

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

kompilainenn

Цитата: mikekaganski от 18 мая 2020, 20:28есть даже русскоязычный мануал, как это сделать из WebUI.
Внимание! Мануал устарел! После обновления gerrit процесс стал выглядеть иначе!
Поддержать разработчиков LibreOffice можно тут, а наш форум вот тут

mikekaganski

Цитата: kompilainenn от 18 мая 2020, 20:54Внимание! Мануал устарел! После обновления gerrit процесс стал выглядеть иначе!

Я даже не могу представить, кто знает этот процесс и мог бы сделать его обновлённую версию... ;)
С уважением,
Михаил Каганский

kompilainenn

Цитата: mikekaganski от 18 мая 2020, 21:39Я даже не могу представить, кто знает этот процесс и мог бы сделать его обновлённую версию... Подмигивающий
Внимание! Мануал обновлён и им можно пользоваться!
Поддержать разработчиков LibreOffice можно тут, а наш форум вот тут