Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

С чем может быть связана показ меню не в той кодировке? [WinXP]


Aleksandr. ©   (2005-08-26 16:57:00) 

Обнаружил, что на некоторых компах программа не по-русски отображает надписи в TPopupMenu, TStatusBar, TMainMenu, TActionMainMenuBar и всплывающем хинте. В TStatusBar, TActionMainMenuBar проблемы устраняется установкой в false свойства UseSystemFont. В TPopupMenu проблема фигурирует, когда к нему подключен ImageList, при убирании все пишется по-русски. А вот что за фигня с подсказками, не перекрывать же THintWindow? Откуда такие проблемы вообще появляются?


Anatoly Podgoretsky   (2005-08-27 13:33:00) [1]

ХР не использует кодировок, а вся Дельфи на них построена.


isasa   (2005-08-27 11:41:00) [2]

Реестр, *.nls ?


Dmy   (2005-08-27 09:26:00) [3]

На разных компах разная кодировка. В XP её можно менять, вроде бы. А в остальных она "зашита" в зависимости от локализации Windows: в русской - кириллица, в английской - западноевропейская... То есть, если программы используют Ansi-функции, то будут виднны только  в локализованной части Windows-ов, если использует Wide-функции, то программа запустится только в NT и производных, но без проблем с кодировкой.

Вся проблема в том, что Дельфи (в зависимости от версии, у меня есть 7 и 5) использует Ansi-функции для того, чтобы программа запускалась на 9x, к тому же у английского проблем нет - латиница есть в любой кодировке... Вотъ... Правда, некоторые объекты используют функции Windows, а некоторые - вручную отрисовывают надписи. Так вот, функции Windows, работающие не в той кодировке (а иногда просто выдают "??????" вместо текста - это значит, что Delphi6 и 7 хранят текст в Wide-строках, а про выводе переводят в Ansi), выводят всякую бибеберду. А вот когда объект отрисовывается самим Дельфи (напр. Лейбл), тогда там корректно отображается в зависимости от значения charset.


Наверх

Титульная страница Поиск, карта сайта Написать письмо