Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
14-1087583312
Zeqfreed
2004-06-18 22:28
2004.07.11
Помогите выбрать видеокамеру


1-1088284734
DeScriptor
2004-06-27 01:18
2004.07.11
динамический массив в кач-ве параметра функции/процедуры


14-1087819008
YurikGL
2004-06-21 15:56
2004.07.11
Восстановление SCSI-винта


8-1081016095
Forelli
2004-04-03 22:14
2004.07.11
Как проигрывать CDA файлы (AudioCD) в программе?


1-1087807137
MetalFan
2004-06-21 12:38
2004.07.11
GetPropInfo...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский