OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Четверг, 24 Июнь, 2021 04:02

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 10 ] 
Автор Сообщение
СообщениеДобавлено: Вторник, 18 Февраль, 2020 22:40 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4619
Откуда: Россия, Орёл
Предлагаю:

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.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 20 Февраль, 2020 16:00 
Аватара пользователя

Зарегистрирован: Суббота, 16 Февраль, 2008 02:47
Сообщения: 486
Встречное минималистичное предложение, чтобы не усложнять интерфейс Dialog

MODULE Dialog;
VAR mapRes*: INTEGER; (** Результат последней операции MapString/MapParamString *)
PROCEDURE MapString...;
PROCEDURE MapParamString...;
END Dialog.

А если нужно вынести реализацию в другой модуль - то через хук, кмк. Но для чего? Dialog не оч большой модуль, всего 43кб


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 21 Февраль, 2020 21:23 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4619
Откуда: Россия, Орёл
Можно оставить в Dialog. Это не принципиально. Можно возвращать через глобальный VAR res. Тоже не принципиально.

Главный вопрос -- это пункт 2. Добавить поддержку ресурсов для отдельных модулей. Потому что, как отметил в соседней ветке Trurl, отдельный плагин отдельной папкой звучит привлекательно, но не работает.

Это расширение функциональности без потери обратной совместимости.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 24 Февраль, 2020 05:59 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3111
Тогда придется делать пакетный менеджер, чтобы разобраться с этой бедой...
Я за то, чтобы следовать правилу: одно расширение — одна новая директория. Признаю свои ошибки и переделаю все расширения, чтобы этого избежать.
Если кто-то не следует правилу, то у него должны быть проблемы. А тут получается с ресурсами для модулей, что мы поощряем отклонение от задумки.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 24 Февраль, 2020 08:32 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3111
С другой стороны, мы делаем 1.8 для сообщества. И если всем будет удобно иметь ресурсные файлы для модулей, что за много лет практики все признают, что так надо, то наверное ничего не поделаешь. Давайте может проведем опрос?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 24 Февраль, 2020 17:03 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4619
Откуда: Россия, Орёл
Иван, люди уже дорожку протоптали по диагонали. Потому что в ББ "минимальный компонет -- это модуль", а не подсистема. В 2013 году я об этом писал (https://oberoncore.ru/library/temir_opr ... _ble_kboks).
Мы, например, 7 лет как это решение эксплуатируем. При том, что обратной совместимости оно не ломает. Хочешь, определяй текстовые ресурсы на уровне подсистемы, хочешь -- на уровне модуля.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 24 Февраль, 2020 19:33 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3111
У меня предложение это внедрить, но договориться такой путь не продвигать в массы пока не будет пакетного менеджера.
Так получается путь садизма. Установил расширение и потом не понятно как его удалить.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 25 Январь, 2021 02:06 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4619
Откуда: Россия, Орёл
Поднимаю тему. Готов сделать ветку с правками. По минимуму -- подправить реализацию в Dialog, добавить VAR mapRes*: INTEGER.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 25 Январь, 2021 05:22 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3111
Евгений Темиргалеев писал(а):
Поднимаю тему. Готов сделать ветку с правками. По минимуму -- подправить реализацию в Dialog, добавить VAR mapRes*: INTEGER.
Хорошо, тут вроде всё обсудили, больше предложений и замечаний нет.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 26 Январь, 2021 11:32 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4619
Откуда: Россия, Орёл
Добавил в ветку d023.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 10 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2021, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB