Pirs |
Отправлено: 10.02.2004, 00:51 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 39
|
Многие компоненты можно засунуть в ControlBar и таскать их там за хвостик. А как запузырить туда MainMenu. Свойства Parent у него нету, а в самой среде Билдера такое вроде возможно.
|
|
xTrim |
Отправлено: 12.02.2004, 15:12 |
|
Машинист паровоза
Группа: Участник
Сообщений: 208
|
Создаешь ToolBar, у него свойство Menu, выбираешь свое MainMenu, создаешь CoolBar в нем создаешь Band у которого ставишь свойство Control = ToolBar. У формы обнуляешь свойство MainMenu. Все.
|
|
Pirs |
Отправлено: 13.02.2004, 01:19 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 39
|
Ну и запутаная это штука!!!
Итак:
1. Ставим ControlBar
2. Бросаем на него ToolBar, а на форму MainMenu и заполняем его
3. По правому клику мыши на ToolBar добавляем кнопки ToolButton по количеству верхних разделов главного меню, ставим у всех свойство Grouped в true.
4. У ToolButton есть свойство MenuItem, его и связываем с каждым верхним разделом MainMenu.
5. Самая хитрая штука — на кнопках нету надписей и Caption не помагает.
6. А оказывается надо не на кнопке а в ToolBar на котором стоит кнопка установить уникальное свойство(!) ShowCaption в true.
7. Для кнопки понадобилось свойство Flat, а его нету.
8. A оказалось, что надо не на кнопке а в ToolBar на котором стоит кнопка установить Flat в true .
9. Обнуляем свойство Menu главной формы
10. То, что во время проектирования написано на кнопке- неважно. После запуска на кнопке появляется Caption из связанного с ним пункта главного меню.
Но тип и стиль шрифта на кнопке не соответствует стилю шрифта главных меню, а с выпадающими подменю все нормально !!!
Как установить на кнопке тип и стиль шрифта главных меню ?
|
|
Asher |
Отправлено: 13.02.2004, 10:15 |
|
Мастер участка
Группа: Модератор
Сообщений: 550
|
Привет.
Если у тебя Builder 6, то делай как сказал xTrim -
Там свойство Menu у ToolBar даже красным цветом выделено в Object Inspector. И никаких заморочей с MenuItem и шрифтами.
|
|
Pirs |
Отправлено: 13.02.2004, 11:57 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 39
|
У меня Builder 5 |
|
xrenok |
Отправлено: 02.03.2004, 20:10 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 19
|
Кнопки в меню получаются выпуклыми. Плохо смотрится. А как их сделать плоскими как в оболочке Builder'a? Там они становятся выпуклыми только при наведении на них курсора мыши. |
|
xTrim |
Отправлено: 03.03.2004, 06:08 |
|
Машинист паровоза
Группа: Участник
Сообщений: 208
|
У ToolBar есть сойство Flat, помоему подойдет
|
|
klen |
Отправлено: 03.03.2004, 23:52 |
|
Машинист паровоза
Группа: Участник
Сообщений: 239
|
Кстати товарищи есть здесь и косяк, как мне кажется релизация полженной на ToolBar главной меню не совсем честная(я всетаки в исходники то залезу, замучала зараза) — если вы настроили меню в дизайнере — все пучком, но если вы его меняете в ходе программы — падающие меню изменяются а вот лицевые — хер!!, я к примеру локализацию менять хочу, получается так:
1 Главное меню никому не принадлежит
2 Загружается форма
3 Мой компонент сереализации обьектов (типа RXLib TFormStorage толко хранит все в XML) выполняет загрузку Caption элементов меню
4 Отображается форма и только после этого присваивается TToolBand -> Menu = MaunMenu.
Если сразу в дизайне задать TToolBand -> Menu = MaunMenu , то загружаются только выпадающие элементы!!!!!!
Я думал это я д-к(я и щас в этом почти не сомневаюсь) но вскрытие с отладчиком показало: если не делать в мной указанной последовательности то после загрузки назавания элемента меню (напоминаю что речь о верхних кнопках) меняется на присваеваемое, а вот отображатся оно в упор не хочет!!!!!!!!!!!!! с выпадающими элементами все ок. Кешируется там чтоли это свойство Caption??? не знаю, но фак фактом — нечесное это плавающее гланое меню, потомучто если меню к форме прикрутить все работает как часы.
Надеюсь это глюки только у меня ( BCB6 ES update4 build10.166, ОС w2k SP4)
|
|
olegenty |
Отправлено: 05.03.2004, 14:38 |
|
Ветеран
Группа: Модератор
Сообщений: 2412
|
А во тут есть есть бесплатное, со всеми версиями совместимое главное меню:
http://jrsoftware.org/download.php/tb2k.zip. Я его давно использую и очень им доволен.
|
|
Pirs |
Отправлено: 06.03.2004, 00:08 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 39
|
Хороший компонент, аккуратно причесаный. У него осталась та же проблема — если у ToolBar свойство Menu, то ЦВЕТ шрифта остается черным, несмотря на изменение цвета в настройках винды для главных меню на другой цвет, напр. зеленый.
И непонятно как присоединять меню MDIChild форм. Свойства AutoMerge у него нету. Ну ладно, там вручную можно через Items->Delete у Child и Items->Insert у Main поштучно переместить.Но при Maximized, сhild разворачивается без системных кнопок — эти кнопки просятся в свое родной ToolBar. Получается, что надо показывать сразу два главных меню — и MainForm и ChildForm ?
|
|
olegenty |
Отправлено: 06.03.2004, 08:26 |
|
Ветеран
Группа: Модератор
Сообщений: 2412
|
нет, как работать с MDI прочти в спраке, там это есть. просто я не помню сейчас, но у меня работало.
|
|
Pirs |
Отправлено: 06.03.2004, 11:20 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 39
|
Разобрался. Там проблема, что MdiHandler должен быть единственным указателем на ToolBar с меню. То есть указывать на меню в главной форме может только один Child. Если открывается второй Child с указателем на то же меню, то стоп-машина. Выход: в обработчике OnDeactivate код:MdiHandler->ToolBar = NULL , в обработчике OnActivate код: MdiHandler->ToolBar = MainForm->ToolBarMenu. И все работает !
А компонент вообще-то СУПЕР!. Первый раз такой вижу.
|
|
olegenty |
Отправлено: 06.03.2004, 15:19 |
|
Ветеран
Группа: Модератор
Сообщений: 2412
|
Ну, если помогло, то я рад )).
А если найдёшь версию 2.0.16, то можешь ещё патч качнуть вот отсюда: http://tbskin.flatstyle2k.de, и поимеешь скиннер, позволяющий придавть меню вид Office XP и Windows XP.
|
|