![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
С чем может быть связана показ меню не в той кодировке? [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.