![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Custom Menu [D6, Win95/98, WinME, NT4, Win2k, WinXP]
Up © (2002-04-16 15:15:00)Доброго времени суток.
Разрабатываю приложение и столкнулся с проблемой поддержки языка интерфейса. В программе задуман перевод контролов на-лету. Все бы ничего, buttons переводятся- достаточно поменять charset, выбрать соответствующий шрифт (Arial) и если все три языка установленны в системе (английский, русский, латышский), то кнопки меняют свой текст сразу.
Проблема возникла с menu. У menu нет property Font и вообще все внутри довольно запутано (VCL, RxLib sources). Начнем с того, что существуют два класса- TMenuPopup и TMenuItem, у обоих есть метод DrawItem. Не понятно какой из них что делает. Посмотрел CoolMenu - не очень дружелюбный интерфейс, лишние для меня навороты, кроме того эти компоненты небесплатны. Что посоветуют мастера? Мне всего-то нужно ввести property Font. Наверняка кто-то натыкался на эту проблему.
Спасибо.
Up (2002-04-16 15:43:00) [1]Да, но посмотрите на CoolMenu - они вообще насколько я понял все делают сами, хотя это мерцает, но в принципе- это те же формы и уже не меню...
Жалко :)
Спасибо.
Reticent (2002-04-16 15:36:00) [2]у меня была эта проблема. К сожалению, по другому никак. :(
Но , если хочешь, можешь перехватить у винды рисование шрифтов и делать свое. Но проще будет вежливо все обьяснить юзеру и попросить перезагрузить комп :)
Удачи!
Виктор Щербаков (2002-04-16 15:33:00) [3]У TMenuItem, есть событие OnDrawItem. В обработчике этого события можно произвольным образом самому нарисовать пункт меню.
Up (2002-04-16 15:28:00) [4]Это как раз и ненужно. Стандартное меню рисуется стандартным шрифтом. У меня в WinXP есть настройка типа "Which language to use for non-unicode controls". Дословно это означает- какой язык дополнительно к английскому (а выбор среди русского и латышского)
использовать. Я бы не хотел заставлять пользователя менять regional settings и делать перезагрузку компа для того что бы интерфейс был на соответствующем языке. Согласитесь, что это неправильно.
Спасибо.
Виктор Щербаков (2002-04-16 15:19:00) [5]Шрифт стандартного меню устанавливается в настройках системы. Это дело пользователя.