Предлагаю:
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.