Вниз
Скачать: CL | DM;

Custom Menu   Найти похожие ветки 

← →
Up   (2002-04-16 15:15) [0]

Доброго времени суток.

Разрабатываю приложение и столкнулся с проблемой поддержки языка интерфейса. В программе задуман перевод контролов на-лету. Все бы ничего, buttons переводятся- достаточно поменять charset, выбрать соответствующий шрифт (Arial) и если все три языка установленны в системе (английский, русский, латышский), то кнопки меняют свой текст сразу.
Проблема возникла с menu. У menu нет property Font и вообще все внутри довольно запутано (VCL, RxLib sources). Начнем с того, что существуют два класса- TMenuPopup и TMenuItem, у обоих есть метод DrawItem. Не понятно какой из них что делает. Посмотрел CoolMenu - не очень дружелюбный интерфейс, лишние для меня навороты, кроме того эти компоненты небесплатны. Что посоветуют мастера? Мне всего-то нужно ввести property Font. Наверняка кто-то натыкался на эту проблему.

Спасибо.


← →
Виктор Щербаков ©   (2002-04-16 15:19) [1]

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


← →
Up   (2002-04-16 15:28) [2]

Это как раз и ненужно. Стандартное меню рисуется стандартным шрифтом. У меня в WinXP есть настройка типа "Which language to use for non-unicode controls". Дословно это означает- какой язык дополнительно к английскому (а выбор среди русского и латышского)
использовать. Я бы не хотел заставлять пользователя менять regional settings и делать перезагрузку компа для того что бы интерфейс был на соответствующем языке. Согласитесь, что это неправильно.

Спасибо.


← →
Виктор Щербаков ©   (2002-04-16 15:33) [3]

У TMenuItem, есть событие OnDrawItem. В обработчике этого события можно произвольным образом самому нарисовать пункт меню.


← →
Reticent ©   (2002-04-16 15:36) [4]

у меня была эта проблема. К сожалению, по другому никак. :(

Но , если хочешь, можешь перехватить у винды рисование шрифтов и делать свое. Но проще будет вежливо все обьяснить юзеру и попросить перезагрузить комп :)

Удачи!


← →
Up   (2002-04-16 15:43) [5]

Да, но посмотрите на CoolMenu - они вообще насколько я понял все делают сами, хотя это мерцает, но в принципе- это те же формы и уже не меню...

Жалко :)

Спасибо.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.008 c
1-94463
Дмитрий_Ч
2002-04-16 11:38
2002.04.29
А может ктото знает как оживить форму фоном.


3-94294
{bas}
2002-04-04 15:59
2002.04.29
Тип TABLE - как его использовать в where


3-94303
mcmax
2002-04-08 15:27
2002.04.29
Подскажите как назначить обработчик события новорожденному TField


1-94356
MVova
2002-04-16 17:19
2002.04.29
Количество тактов процессора


1-94411
vlad0007
2002-04-17 23:30
2002.04.29
Люди, МАСТЕРА ну хоть кто нибудь...




   Наверх