настройка MainMenu

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Ответить
mirk
постоялец
Сообщения: 319
Зарегистрирован: 24.09.2007 10:03:39

настройка MainMenu

Сообщение mirk »

Пытаюсь сделать MainMenu красивый вид, но не могу найти несколько настроек:
1. Место под картинку было всегда зарезервировано слева;
2. Мес то под картинку сделать другим цветом (как в Delphi);
3. Место под галку (CheckBox) было всегда зарезервировано слева;
4. Горячие клавиши (ShortCut) шли в своей колонке (справа), а не прижимались к названию пункта меню.
Где их искать? ;)
Аватара пользователя
dunin
энтузиаст
Сообщения: 634
Зарегистрирован: 02.05.2007 13:18:11
Откуда: Тољя††и
Контактная информация:

Сообщение dunin »

mirk, второй пункт не понял, а вот как умудрились все остальное сделать как-то по другому ума не приложу. :|
Скриншотом с "неправильным меню" не поделись?
mirk
постоялец
Сообщения: 319
Зарегистрирован: 24.09.2007 10:03:39

Сообщение mirk »

menu1.png: слева нет поля ни под картинку, ни под CheckBox. ShortCut у верхнего пункта залез на текст нижнего пункта (гораздо красивее выглядит если будет явные 2 колонки - под текст и под ShortCut).

menu2.png: место под картинку обозначено другим цветом (Delphi).
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
dunin
энтузиаст
Сообщения: 634
Зарегистрирован: 02.05.2007 13:18:11
Откуда: Тољя††и
Контактная информация:

Сообщение dunin »

Код: Выделить всё

MainMenu.ImageList:= Imagelist;
mirk
постоялец
Сообщения: 319
Зарегистрирован: 24.09.2007 10:03:39

Сообщение mirk »

Указание ImageList не дает желаемого эффекта. Место появляется только если у ветки меню есть хоть 1 картинка. Но мне надо чтобы место было всегда - для единообразия. Иначе получается, что в одной ветке меню есть место, а в другой - нет (т.е. не очень красиво).
Аватара пользователя
Sergei I. Gorelkin
энтузиаст
Сообщения: 1409
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград

Сообщение Sergei I. Gorelkin »

Меню в Delphi7 реализовано совершенно другим компонентом (TActionBar и компания), искать какие-то настройки для этого в стандартном TMenu просто бессмысленно - их там нет.
mirk
постоялец
Сообщения: 319
Зарегистрирован: 24.09.2007 10:03:39

Сообщение mirk »

Меню из Delphi7 приложил для примера, т.к. он (Delphi7) просто оказался под рукой.
В обычном TMainMenu у Delphi7 нет проблем с 3 и 4 - эти детали учитываются по умолчанию. Разве Lazarus не должен унаследовать подобное поведение?
Аватара пользователя
alexs
долгожитель
Сообщения: 4069
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

mirk
Перехватывай событие отрисовки меню и рисуй там что хочешь.
Кстати, если не ошибаюсь, отрисовка картинок в меню в LCL сделана именно так.
Сделай не стандарное меню своими компонентами.

PS
Но лучше с меню особо не эксперемнтировать - у тебя один вид - ты его красиво раскрасил. А у пользователя будет установлена другая тема оформления - вся красота пойдёт лесом...
PPS
Я уж не говорю о том, что это будет врядли кросплатформенным решением.
mirk
постоялец
Сообщения: 319
Зарегистрирован: 24.09.2007 10:03:39

Сообщение mirk »

Но лучше с меню особо не эксперемнтировать - у тебя один вид - ты его красиво раскрасил. А у пользователя будет установлена другая тема оформления - вся красота пойдёт лесом...

Согласен.
Пункты 1 и 2 попадает под раскраски и от них можно легко отказаться.
Но пункты 3 и 4 - стандартное поведение меню, и получается в Lazarus меню будет не как в системе. А ведь ошибка довольно простая - не надо скрывать поле под галку и все. Для проверки можно посмотреть как себя ведет меню в Delphi (обычное) или в MS Paint.
Аватара пользователя
Sergei I. Gorelkin
энтузиаст
Сообщения: 1409
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград

Сообщение Sergei I. Gorelkin »

На эту тему есть патч (уже год болтается): http://bugs.freepascal.org/view.php?id=18424
mirk
постоялец
Сообщения: 319
Зарегистрирован: 24.09.2007 10:03:39

Сообщение mirk »

На эту тему есть патч (уже год болтается)

Отличный патч (даже больше косяков исправляет). Почему его не принимают?
Может есть подобный патч и на п.4? ;)
ev
долгожитель
Сообщения: 1797
Зарегистрирован: 27.04.2005 23:19:06
Откуда: Москва

Сообщение ev »

Отличный патч (даже больше косяков исправляет). Почему его не принимают?

сегодня обновился... в SVN версии патч применен (спасибо Павлу Ишенину) ;)
mirk
постоялец
Сообщения: 319
Зарегистрирован: 24.09.2007 10:03:39

Сообщение mirk »

в SVN версии патч применен (спасибо Павлу Ишенину)

Огромное спасибо за оперативное исправление :!:

P.S. Может найдется подобный патч для решения п.4? ;)
Ответить