![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Разные 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]Формировать меню в динамике.