Форум: "Основная";
Текущий архив: 2004.07.11;
Скачать: [xml.tar.bz2];
ВнизПроблема с созданием библиотеки ресурсов. Найти похожие ветки
← →
Maks Realov (2004-06-24 10:51) [0]Здравствуйте, уважаемые.
Появилась проблема.
Мне надо добавить в свой проект возможность переключения языков интерфейса. Все строковые константы я вынес в ResourceString и у всех визуальных контролов стаит соотв. свойство.
Далее я пытаюсь штатным способом добавить язык: Project -> Languages -> Add. Но!!! Проблема в том, что я использую один спецефичный визуальный компонент и при попытки компиляции проекта на этапе завершения мастера создания библиотеки ресурсов выдаётся ошибка, которую никак не могу победить :(
---------------------------
Error
---------------------------
ObjectTextToResource failed: Line too long on line 58
- File saved: C:\temp\RUS\Unit1.ERR_DFM
---------------------------
OK
---------------------------
Вопрос: можно ли "ручками" создать библиотеку ресурсов, что бы в неё входили как мои ResourceStrings, так и все Captions, Text и т.д. визуальных контролов формы. И что бы при этом продолжала работать схема смены языка "на лету":
if LoadNewResourceModule(iLang) <> 0 then
begin
ReinitializeForms;
end;
где iLang - номер языка
Help так и не дал мне чёткого представления как это сделать :(
Спасибо.
← →
Maks Realov (2004-06-24 16:29) [1]page up
← →
Maks Realov (2004-06-25 11:12) [2]Я упорный. Буду подниматься. Может кто знающий заметит и ответит наконец.
А то больно уже не охота всё в ini складывать и как не белому человеку "ручками" всё переименовывать :(
← →
Hint © (2004-06-25 12:04) [3]А почему бы вам не использовать такую схему:
Есть файл, ну например, english.lng, который содержит в себе набор записей:
type TComponentLangRes
ComponentName: string[255];
ComponentProp: string[255];
Text: string[255];
end;
где ComponentName - имя компоненты (EditUserName), ComponentProp - свойство (Text, Caption), а Text - это текст на английском, русском, etc.
Вы читаете из файла запись, находите компоненту с помощью FindComponent и определив куда надо запихнуть Text с помощью ComponentProp руссифицируете/"англизируйте" программу.
Можно вообще сохранить в файл состояние компоненты с помощью WriteComponentRes, а считать ReadComponentRes.
Вроде все это не очень сложно.
Можно порыть в сторону RTTI.
← →
ламер © (2004-06-25 12:07) [4]>Вопрос: можно ли "ручками" создать библиотеку ресурсов, что бы
> в неё входили как мои ResourceStrings, так и все Captions,
> Text и т.д. визуальных контролов формы. И что бы при этом
> продолжала работать схема смены языка "на лету":
можно. но оно тебе надо? копируешь все DFM-файлы, переводишь значения необходимых свойств и всё.
← →
Maks Realov (2004-06-25 12:10) [5]Hint © (25.06.04 12:04) [3]:
Можно конечно и так сделать как Вы предложили. Но тут есть некоторые НО.
1). Т.к. продукт коммерческий, - не хотелось бы что бы "потроха", т.е. компоненты и их названия были доступны в явном виде. Ничего криминального тут конечно нет, да и сам файл можно кодировать, но всё же это выглядит не очень красиво imho и подходит для проектов с кол-вом строковых ресурсов до 500-1000 штук.
2). Если есть уже отработанный механизм работы с ресурсами, то зачем придумывать лосипед? :)
А в сторону RTTI - что тут рыть-то? RTTI оно и в Африке RTTI :)
Ручками перебирать контролы - не хотса. Не интересно :)
← →
Maks Realov (2004-06-25 12:12) [6]ламер © (25.06.04 12:07) [4]:
ага, и что - мне для каждого языка dfm-ки править потом и проект пересобирать? Нет уж дудки!
Пользователь будет скачивать файл-ресурсов с моего сервера и приложение должно само на лету перегружать ресурсы.
← →
ламер © (2004-06-25 12:15) [7]зачем проект?! только библиотеку ресурсов.
← →
Hint © (2004-06-25 12:18) [8]Ну тады извините :o)
Может задать вопрос с пристрастием разработчикам компоненты?
Да и файл можно шифровать например MD5 ;o)
← →
Maks Realov (2004-06-27 14:31) [9]ещё есть идеи?
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.07.11;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.036 c