Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.04.29;
Скачать: CL | DM;

Вниз

Проблема с TreeView   Найти похожие ветки 

 
Voldemar ©   (2002-04-14 23:11) [0]

Доброго времени суток!
Объясните мне, плз, такую вещь:
На TreeView у меня повешено PopUpMenu и включено свойство RightClickSelect. В этом меню есть пункт "Добавить" и по этому пункту происходит, естественно, добавление элемента. Но!.. элемент добавляется к узлу, который был выделен до этого, а никак не к тому, на котором я RightClick. Как это победить? И еще вопросец заодно - как при AddChild сделать так, чтобы после создания элемент сразу был Selected?


 
Song ©   (2002-04-14 23:21) [1]

Попробуйте сначала выделить нужный узел, и на нём нажать правую кнопку. Что касается второй части вопроса есть метод Select(), например Select(AddChild(...))


 
Voldemar ©   (2002-04-14 23:26) [2]

>>Song © (14.04.02 23:21)
Это-то понятно, если выделить - все работает правильно... А вот как бы от этого уйти?
За второй совет TNX!


 
Song ©   (2002-04-15 08:12) [3]

2Voldemar © (14.04.02 23:26)
Никак. Это особенность TPopupMenu в данном случае.


 
SB.John   (2002-04-15 09:46) [4]

Придется пользоваться функцией GetNodeAt.

В событии OnPopup твоего всплывающего меню или при нажатии правой кнопки мыши на TreeView пропиши код типа:

TreeView1.Selected = TreeView1.GetNodeAt(Mouse.CursorPos.X,Mouse.CursorPos.Y)

Тут могут быть проблемы, так как Mouse.CursorPos показывает координаты относительно левого верхнего угла экрана, а тебе нужно относительно левого верхнего угла твоего дерева. Так что, возможно придется переводить координаты.


 
Song ©   (2002-04-15 09:53) [5]

Тут могут быть проблемы, так как Mouse.CursorPos показывает координаты относительно левого верхнего угла экрана, а тебе нужно относительно левого верхнего угла твоего дерева. Так что, возможно придется переводить координаты.

ScreenToClient()

Корявый немного способ, но похоже лучше ничего нет :(


 
Voldemar ©   (2002-04-16 02:13) [6]

Огромный TNX! Все получилось великолепно! Единственное что, когда происходит нажатие в свободной области, где нет элементов, возникает AccessViolation. Но его можно обработать.
Так что ничего кривого там нет:))



Страницы: 1 вся ветка

Текущий архив: 2002.04.29;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.008 c
3-94311
CashDi
2002-04-09 10:21
2002.04.29
D6


4-94612
Grim Rider
2002-02-22 06:24
2002.04.29
PostMessage или приказано


1-94425
GBF
2002-04-15 15:05
2002.04.29
Как несколько файлов упаковать в один внешний


1-94376
Vovochka
2002-04-17 15:14
2002.04.29
Update for Delphi6


7-94586
helper
2002-02-02 08:29
2002.04.29
Реестр