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

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

Разные PopupMenu в TreeView


snake-as ©   (2008-11-30 11:27:00) 

Здравствуйте. Подскажите, пожалуйста, как сжелать, чтобы в зависимости от того, какая ветка выбрана в TreeView, было разное контекстное меню? Заранее спасибо!


Ega23   (2008-11-30 19:42:00) [1]


> У TPopupMenu есть OnPopup, а у TControl'а есть OnContextPopup.


А, ну да. Перепутал.
Ну я, вроде, на OnPopup закладывался, мне координаты не сильно интересны были. Главное чтобы какой-то из нодов был Selected.


{RASkov}   (2008-11-30 19:22:00) [2]

> Более того, в этом обработчике можно сделать выбор нода

т.е. тут проще наверное это сделать, а сделать такое вообще наверное можно и в других местах....)


{RASkov}   (2008-11-30 19:20:00) [3]

> Либо у TPopupMenu событие есть, OnContextPopup

У TPopupMenu есть OnPopup, а у TControl'а есть OnContextPopup.... Можно формировать меню и "там и тут", но гораздо удобнее в OnContextPopup, там передаются координаты мыши... Более того, в этом обработчике можно сделать выбор нода, по которому кликнули "правой кнопкой" - т.е. будет более человечий попап... иначе попап выпадает, а выделение возвращается на предыдущий нод.... Некрасиво :)


Ega23   (2008-11-30 18:17:00) [4]


> На событии щелканья правой кнопкой? Вы это имете ввиду?


Ну либо как Юрий Зотов предлагает. Это если разных пунктов меню немного.
Либо у TPopupMenu событие есть, OnContextPopup, вроде (delphi под руками нет, точно не помню).


Юрий Зотов   (2008-11-30 17:47:00) [5]

Можно заранее подготовить несколько меню и переключать их в обработчике события выбора ветки:

if выбрана_ветка_1 then
 TreeView.PopupMenu := PopupMenu1
else
 TreeView.PopupMenu := PopupMenu2

Можно иметь одно меню, но его пункты формировать в коде, в том же обработчике. См. NewItem.


snake-as   (2008-11-30 17:37:00) [6]

На событии щелканья правой кнопкой? Вы это имете ввиду?


Ega23   (2008-11-30 11:46:00) [7]

Формировать меню в динамике.


Наверх

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