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

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

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]

Шрифт стандартного меню устанавливается в настройках системы. Это дело пользователя.


Наверх

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