Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.04.29;
Скачать: [xml.tar.bz2];




Вниз

Проблема с 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. Но его можно обработать.
Так что ничего кривого там нет:))




Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.04.29;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.72 MB
Время: 0.04 c
3-94261           Buh                   2002-04-07 12:36  2002.04.29  
Как вставить записи из dbf в базу Interbase


14-94549          Nest                  2002-03-21 14:42  2002.04.29  
Как сделать недоступными некоторые items в TListBox? Или есть другой компонент с такой фичей?


7-94588           Torn                  2002-01-31 09:12  2002.04.29  
Вход в сеть под Win98 автоматически без ввода пароля


3-94311           CashDi                2002-04-09 10:21  2002.04.29  
D6


14-94563          Delphinchik           2002-03-23 21:42  2002.04.29  
Обламаем NT-ю