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

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

Снова про Menu [D7, WinXP]


Vasek ©   (2005-02-22 21:12:00) 

Как я понял из того, что ответа на мой предидущий вопрос не последовало, никто не использует ActionMainMenuBar в своих программах. В связи с этим попробую поставить другой:
Посоветуйте, пожалуйтса, какое меню можно использовать.
Требования:
1.Работа с меню должна осуществлятся с клавиатуы(на пример Alt- Активизирует меню, стелками перемещаемся, Enter- выбор пункта меню.
2.Необходима возможность изменения размера и шрифта (Charset).
3.Желательна возможность изменения цветов и добавления иконок.
Буду благодарен за орветы.


Геннадий   (2005-02-25 08:26:00) [1]

Здравствуйте !
Не знаю помогу или нет, но я сделал бы так ( чтобы долго не копатьяс ): обьявил переменную P1 и присвоил ей 0. В обработке  OnExecut выполняю проверку P1 = 0, да -> выполняю обработку и увеличиваю P1 на 1, если P1 = 1, то -> P1 = 0 и больше ничего не делаю. В этом случае обработка будет выполняться только один раз, причина глюка останется не устраненной.
С уважением Геннадий.


Vasek   (2005-02-23 22:58:00) [2]

Всем Большое спасибо за участие.
С 23-м Февраля (кто знает) ;)


Wonderer   (2005-02-23 21:39:00) [3]

Вообще используй только стандартные меню, но со своей прорисовкой, это не так уж и сложно, примеры есть, глянь базу на
http://delphiworld.narod.ru/.А еще поищи TXPMenu - глюкавый компонент, но принципы усвоить поможет. И забудь об этом TFUctionMainMenuBar и подобной дрянью. Не ты один поражаешся глюкавости. Даже в разработке очень капризные компоненты


Sun bittern   (2005-02-23 20:06:00) [4]

Vasek   (23.02.05 17:40) [7]

>> Про глюки в TActionToolBar если можно поподробнее.

Есть несколько глюков, причем некоторые не особо приятные, можешь поверить наслово.

>Лучше юзай сторонние компоненты
>> А какие, например???

Компонентов в стиле XP ныне море, как платных так и халявных. Не найти их просто невозможно. Можешь на Торри поискать http://www.torry.net/

Если бы знали решение проблемы, думаю поделились бы, не жадные.

А так на отладку компонентов врядли кому-то охота тратить свое личное время. Модуль ActnMenus видели? Строчек кода там наверно на 80-100 страниц формата А4. А это: вникунть в суть работы каждого класса, понять принцип и последователность действий. Не по одному разу пробежаться отладчиком. Как думаете сколько времени это займет?

Приблизительную ошибку в компоненте уже знаете. Т.е. если менюшка лежит на панельке, то обработка сообщения происходит дважды. Вот и попробуйте выяснить, кто лишний раз сообщение шлет? Или может просто не хватает одного условия дабы ограничить данный глюк.

Возможные места откуда начать раскопки или может там и поправить получиться.
procedure TCustomActionMenuBar.CMItemClicked
procedure TCustomActionMenuBar.ProcessMouseMsg
procedure TCustomActionMenuBar.TrackMenu
procedure TCustomMenuButton.MouseDown
procedure TCustomMenuButton.MouseUp

Также проверить что и в какой момент времени посылает сообщения:
CM_ITEMCLICKED
WM_LBUTTONDOWN
WM_LBUTTONUP

А может где-то лишний раз вызывается метод
procedure TCustomActionMenuBar.ExecAction
или
TAction.Execute

Вот и попробуйте покапаться в таком сложном компонентике, тут времени даже у мастеров прилично потратится :). А советы вам уже выше дали ;).


Vasek   (2005-02-23 17:40:00) [5]

Значит, все только поболтать, а помоч - так все мочат...


Vasek   (2005-02-23 10:41:00) [6]

To Sun bittern ©
Про глюки в TActionToolBar если можно поподробнее.
> Лучше юзай сторонние компоненты
А какие, например???


Sun bittern   (2005-02-23 08:59:00) [7]

Vasek   (23.02.05 02:40) [4]

Лучше юзай сторонние компоненты т.к. например в TActionToolBar тоже присутсвует ряд глюков. Или стандартную минюшку.


Vasek   (2005-02-23 02:40:00) [8]

Вот ссылка
http://www.delphimaster.ru/cgi-bin/forum.pl?id=1109016964&n=0
> Зачем тебе эта красота?
Красота спасёт мир! :))
> Главное гибкость,надежность,мин.стоимость и пр.
Абсолютно согласен. Потому и нужно нормальное меню.


GanibalLector   (2005-02-23 02:29:00) [9]

>1. См. мой предидущий вопрос.
Ну и где его смотреть?Ссылку что-ли засвети.
А вообще,ИМХО,ты фигней занимаешься.Зачем тебе эта красота?Главное гибкость,надежность,мин.стоимость и пр.


Vasek   (2005-02-23 02:17:00) [10]

To GanibalLector ©
1. См. мой предидущий вопрос.
В краце: ActionMainMenuBar ДВАЖДЫобрабатывает OnExecut по клику мыши.
2. Слишком уж мелко.:) Задача мульиязычная.
3. Стандартный (MainMenuBar) отображает только иконки 16х16 что слишком уж мелко.
Вывод: Меня бы впоне устроил ActionMainMenuBar если кто поможет исправить вышеозначеный ГЛЮК !!!
Пока ещё не перестаю надеятся на компетенцию и помощ МАСТЕРОВ!!! :-))


GanibalLector   (2005-02-23 01:51:00) [11]

1.Стандартный позволяет
2.Не уверен!А  зачем? Вам это ??
3.Запросто.Св-в стандартного предостаточно.


Наверх

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