![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| epirson |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 25.1.2007 Репутация: нет Всего: нет |
При переносе программы в другую ОС, по всей видимости с другими языковыми параметрами, в некоторых местах не отображается кириллица, вместо русских букв - "???" Какой самый оптимальный вариант решения данной проблемы?
|
|||
|
||||
| aktuba |
|
|||
![]() Смышленный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1915 Регистрация: 24.4.2006 Где: Планета Земля Репутация: 16 Всего: 38 |
-------------------- ![]() |
|||
|
||||
| Bose |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1458 Регистрация: 5.3.2005 Где: Riga, Latvia Репутация: 23 Всего: 51 |
хочу побрюзжать:
Вопрос поставлен некорректно. Ты не указал, ни на какую ось ты переносишь, ни какие там региональные настройки.
Ни в каких местах у тебя вопросики вместо букв Самый оптимальный вариант - это использовать Unicode Controlы. (Ищи TntUnicodeControls) |
|||
|
||||
| epirson |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 25.1.2007 Репутация: нет Всего: нет |
http://
aktuba, спасибо, прочитал http://forum.vingrad.ru/topic-82093/view-all.html Попробовал. С ComboBox проблема не решилась + появилось, новая попутная. вместо "????" на одном копьютере, на англ ос, стали отображатся вообще непонятные значки, вот, на скриншоте: ![]() Bose, ось - WinXP, региональные настройки в первом случае ("????") не извесны, во втором (непонятные значки) - язык для программ, не поддерживающий юникод стоит английский. При установке русского все отлично работает, но желательно что бы программа это делала сама. |
|||
|
||||
| Bose |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1458 Регистрация: 5.3.2005 Где: Riga, Latvia Репутация: 23 Всего: 51 |
что бы программа это делала сама, нужно воспользоваться советом данным в той тебе и 1) поставить вызов SetThreadLocale с русской локалью в начале приложения 2) для всех шрифтов поставить Cyrillic Charset 3) Убедиться, что на том компе для этих шрифтов проинсталлены русский набор символов |
|||
|
||||
| epirson |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 25.1.2007 Репутация: нет Всего: нет |
Bose,
Re: 1) поставил, project - view source:
2) поставил, RUSSIAN_CHARSET 3) открыл wordpad напечатал слово "привет", шрифт Tahoma (именно его использую в приложении), все отобразилось замечательно. |
|||
|
||||
| Bose |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1458 Регистрация: 5.3.2005 Где: Riga, Latvia Репутация: 23 Всего: 51 |
epirson, и при этом всё такая же картина?
![]() Такое ощущение, что проблема там всё-таки в неправильном Charsete. Я бы попробовал в момент сворачивания(OnCloseUp) сделать отладочный вывод следующей информации: 1) GetThreadLocale (должна быть такой же как и в SetThreadLocale(1049)) 2) Font и Charset у ComboBoxa 3) Чему равно свойство ParentFont у ComboBoxa 4) если ParentFont у ComboBoxa равен True, то какие свойства Font и Charset у родителя(Parent) ComboBoxa |
|||
|
||||
| epirson |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 25.1.2007 Репутация: нет Всего: нет |
Bose, ага! вот. GetThreadLocale говорит значение 1033! почему? есть варианты?
|
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
Патамучта манифест
|
|||
|
||||
| Bose |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1458 Регистрация: 5.3.2005 Где: Riga, Latvia Репутация: 23 Всего: 51 |
Возможно, смена локали происходит в Application.Initialize. Или(!) SetThreadLocale(1049) вообще не срабатывает. Что кстати возвращает вызов SetThreadLocale(1049)? Так или иначе, нужно отследить, в какой момент происходит изменение. Добавлено @ 16:45 Snowy, вы, гуру, загадками изволите говорить |
|||
|
||||
| Yanis |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2937 Регистрация: 9.2.2004 Где: Москва Репутация: 72 Всего: 111 |
Snowy
Ты имеешь ввиду параметр language в файле *.manifest? Это сообщение отредактировал(а) Yanis - 31.1.2007, 16:52 |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
Угу. При подключении манифеста может быть всё что угодно.
А настроить его должным образом у меня не получается. До дыр зачитал MSDN, но написанное там не работает, готовые примеры также не прокатывают. |
|||
|
||||
| Yanis |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2937 Регистрация: 9.2.2004 Где: Москва Репутация: 72 Всего: 111 |
А если попробовать SetThreadLocale вызвать "в программе", т.е. OnCreate например?!
Вообще странная картинка: ![]() Что за компонент? Как происходит отрисовка? Как строки заносятся? |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
||||
|
||||
| Yanis |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2937 Регистрация: 9.2.2004 Где: Москва Репутация: 72 Всего: 111 |
Кстати, тред получает какое-то сообщение, когда для него вызывают эту функцию.... Проверить бы |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |