Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.07.11;
Скачать: CL | DM;

Вниз

Проблема с созданием библиотеки ресурсов.   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.038 c
1-1088158507
niko4543
2004-06-25 14:15
2004.07.11
Таймер.


1-1088198532
jktu
2004-06-26 01:22
2004.07.11
Вопрос о формуле


3-1087301447
max1000
2004-06-15 16:10
2004.07.11
При печати Word а через мою программу выдает ошибку


14-1087779761
Vasya.ru
2004-06-21 05:02
2004.07.11
RTF - чем хуже DOC а?


14-1088082581
RealRascal
2004-06-24 17:09
2004.07.11
Fuzz