Главная страница
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
7-94600
kioto
2002-01-27 10:59
2002.04.29
Отображение содержимого окна при перетаскивании


1-94366
USAtyj
2002-04-17 12:53
2002.04.29
Работа с OLE Winword.


7-94576
Great
2002-01-26 22:03
2002.04.29
Программа блокирует Shutdown,Restart и Logoff в Win XP


3-94324
Uncle SAM
2002-04-02 01:47
2002.04.29
SPLIT


4-94619
s-thick
2002-02-21 05:05
2002.04.29
Win2000, WinXP (Ctrl-Alt-Del)