Как скрыть редко используемые пункты в PopupMenu

 
0
 
Delphi, Kylix and Pascal
ava
Matrex | 22.08.2016, 16:00
Коллеги доброго времени суток.

Подскажите, может кто знает как скрывать редко используемые пункты меню в PopupMenu?

Знаю это можно сделать через ActionManager но такой вариант не подходит ввиду слишком разросшегося проекта и значительной переделки...
Ответы (3)
ava
Garmahis | 22.08.2016, 16:44 #
А в чем конкретно вопрос? Если вы хотите скрывать часть пунктов, соответственно, вам надо определиться где и как хранить статистику использования этих пунктов. Если приложение многопользовательское то это надо привязывать дополнительно к каждому пользователю. В случае если какие-то пункты скрыты надо добавлять пункт "показать скрытые". Соответственно при прорисовке формы или в процедуре загрузки пунктов меню вам надо смотреть для каждого пункта эту статистику и принимать решение показывать или нет...   
ava
Matrex | 22.08.2016, 17:08 #
Я все это понимаю, и если решения проще нет, придется делать именно так, но я знаю что через ActionManager это делается автоматически (обратите внимание на word или excel 2003) - там используется именно эта технология. Delphi ее поддерживает - но слишком много переделок надо сделать уже в рабочем проекте у которого порядка 400 форм. В общем я думал что есть решение попроще: может компонент сторонний какой - типа кидаешь на форму и он сам считает клики и скрывает пункты меню... Если такого нет - буду колхозить свой... 
ava
Kitu Chepesi | 14.09.2016, 18:09 (Отредактирован 14.09.2016 19:23) #
Можно создать потомка PopupMenu со своим функционалом, а потом в проекте просто переопределите все необходимые PopupMenu на своего потомка. Это с точки зрения объема работы, мне кажется, будет проще, чем еще один компонент, который надзирает за использованием всплывающих меню.
Зарегистрируйтесь или войдите, чтобы написать.
Фирма дня
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Участники
advanced
Отправить