OberonCore https://forum.oberoncore.ru/ |
|
#023 текстовые ресурсы для модуля, результат чтения цепочки https://forum.oberoncore.ru/viewtopic.php?f=134&t=6559 |
Страница 1 из 1 |
Автор: | Евгений Темиргалеев [ Вторник, 18 Февраль, 2020 22:40 ] |
Заголовок сообщения: | #023 текстовые ресурсы для модуля, результат чтения цепочки |
Предлагаю: 1) Добавить процедуры, которые выдают результат поиска подстановки, в Dialog: Цитата: PROCEDURE MapParamStringRes (IN in, p0, p1, p2: ARRAY OF CHAR; OUT out: ARRAY OF CHAR; OUT res: INTEGER) PROCEDURE MapStringRes (IN in: ARRAY OF CHAR; OUT out: ARRAY OF CHAR; OUT res: INTEGER) Аналоги MapParamString/MapString, выдающие результат подстановки res: 0 — успешно 6 — результат целиком не влез, обрезан 1..3 — ошибка синтаксиса in 4 — не считался файл с текстовыми ресурсами 5 — ключ не найден 2) Добавить поддержку ресурсов для отдельных модулей. Подробнее см. https://oberoncore.ru/library/temir_opr ... _ble_kboks Цитата: Форма "#SubsystemModule:message" указывает на файл текстовых ресурсов "ModuleStrings" в каталоге "Rsrc" подсистемы System. 3) Технически выделить библиотечный модуль, поддерживающий текстовые ресурсы, из Dialog для сокращения объема исходного текста и прояснения структуры в целях упрощения поддержки. Процедуры Dialog переадресуются на внутрений модуль: Код: DEFINITION Textrsrc;
PROCEDURE FlushMappings; PROCEDURE MapParamString (IN in, p0, p1, p2: ARRAY OF CHAR; OUT out: ARRAY OF CHAR); PROCEDURE MapParamStringRes (IN in, p0, p1, p2: ARRAY OF CHAR; OUT out: ARRAY OF CHAR; OUT result: INTEGER); PROCEDURE MapString (IN in: ARRAY OF CHAR; OUT out: ARRAY OF CHAR); PROCEDURE MapStringRes (in: ARRAY OF CHAR; OUT out: ARRAY OF CHAR; OUT result: INTEGER); PROCEDURE SetLanguage (x: ARRAY OF CHAR); END Textrsrc. |
Автор: | adimetrius [ Четверг, 20 Февраль, 2020 16:00 ] |
Заголовок сообщения: | Re: Доб. текстовые ресурсы для модуля, результат чтения цепо |
Встречное минималистичное предложение, чтобы не усложнять интерфейс Dialog MODULE Dialog; VAR mapRes*: INTEGER; (** Результат последней операции MapString/MapParamString *) PROCEDURE MapString...; PROCEDURE MapParamString...; END Dialog. А если нужно вынести реализацию в другой модуль - то через хук, кмк. Но для чего? Dialog не оч большой модуль, всего 43кб |
Автор: | Евгений Темиргалеев [ Пятница, 21 Февраль, 2020 21:23 ] |
Заголовок сообщения: | Re: Доб. текстовые ресурсы для модуля, результат чтения цепо |
Можно оставить в Dialog. Это не принципиально. Можно возвращать через глобальный VAR res. Тоже не принципиально. Главный вопрос -- это пункт 2. Добавить поддержку ресурсов для отдельных модулей. Потому что, как отметил в соседней ветке Trurl, отдельный плагин отдельной папкой звучит привлекательно, но не работает. Это расширение функциональности без потери обратной совместимости. |
Автор: | Иван Денисов [ Понедельник, 24 Февраль, 2020 05:59 ] |
Заголовок сообщения: | Re: Доб. текстовые ресурсы для модуля, результат чтения цепо |
Тогда придется делать пакетный менеджер, чтобы разобраться с этой бедой... Я за то, чтобы следовать правилу: одно расширение — одна новая директория. Признаю свои ошибки и переделаю все расширения, чтобы этого избежать. Если кто-то не следует правилу, то у него должны быть проблемы. А тут получается с ресурсами для модулей, что мы поощряем отклонение от задумки. |
Автор: | Иван Денисов [ Понедельник, 24 Февраль, 2020 08:32 ] |
Заголовок сообщения: | Re: Доб. текстовые ресурсы для модуля, результат чтения цепо |
С другой стороны, мы делаем 1.8 для сообщества. И если всем будет удобно иметь ресурсные файлы для модулей, что за много лет практики все признают, что так надо, то наверное ничего не поделаешь. Давайте может проведем опрос? |
Автор: | Евгений Темиргалеев [ Понедельник, 24 Февраль, 2020 17:03 ] |
Заголовок сообщения: | Re: Доб. текстовые ресурсы для модуля, результат чтения цепо |
Иван, люди уже дорожку протоптали по диагонали. Потому что в ББ "минимальный компонет -- это модуль", а не подсистема. В 2013 году я об этом писал (https://oberoncore.ru/library/temir_opr ... _ble_kboks). Мы, например, 7 лет как это решение эксплуатируем. При том, что обратной совместимости оно не ломает. Хочешь, определяй текстовые ресурсы на уровне подсистемы, хочешь -- на уровне модуля. |
Автор: | Иван Денисов [ Понедельник, 24 Февраль, 2020 19:33 ] |
Заголовок сообщения: | Re: Доб. текстовые ресурсы для модуля, результат чтения цепо |
У меня предложение это внедрить, но договориться такой путь не продвигать в массы пока не будет пакетного менеджера. Так получается путь садизма. Установил расширение и потом не понятно как его удалить. |
Автор: | Евгений Темиргалеев [ Понедельник, 25 Январь, 2021 02:06 ] |
Заголовок сообщения: | Re: #023 текстовые ресурсы для модуля, результат чтения цепо |
Поднимаю тему. Готов сделать ветку с правками. По минимуму -- подправить реализацию в Dialog, добавить VAR mapRes*: INTEGER. |
Автор: | Иван Денисов [ Понедельник, 25 Январь, 2021 05:22 ] |
Заголовок сообщения: | Re: #023 текстовые ресурсы для модуля, результат чтения цепо |
Евгений Темиргалеев писал(а): Поднимаю тему. Готов сделать ветку с правками. По минимуму -- подправить реализацию в Dialog, добавить VAR mapRes*: INTEGER. Хорошо, тут вроде всё обсудили, больше предложений и замечаний нет.
|
Автор: | Евгений Темиргалеев [ Вторник, 26 Январь, 2021 11:32 ] |
Заголовок сообщения: | Re: #023 текстовые ресурсы для модуля, результат чтения цепо |
Добавил в ветку d023. |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |