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

Вниз

TTVirtualStringTree: как сделать свой [+] для раскрытия/закрытия?   Найти похожие ветки 

 
NeyroSpace ©   (2005-05-18 17:38) [0]

Хелп местами не дописан, поэтому хотелось спросить, есть ли в компоненте TVirtualStringTree (TVirtualTree) метод или св-во, определяющее координаты и размеры четырехугольника под значек [+]. Как убрать стандартную отрисовку ветвей дерева понятно, а вот как сообщить дереву, где я сам нарисовал [+] для раскрытия ветки я так и не нашел.


 
-=XP=- ©   (2005-05-18 17:44) [1]

А что это за зверь такой?


 
NeyroSpace ©   (2005-05-18 18:02) [2]

Зверюга что надо! Куча возможностей и все это безвозмездно, т.е. даром!
Осталось только с этой кучей разобраться...
Если интересно, вот сайт проекта:
http://www.lischke-online.de/VirtualTreeview/

вопрос все еще в силе...


 
NeyroSpace ©   (2005-05-19 09:05) [3]

Не уже ли никто не использует TVirtualStringTree? :-(


 
fox ©   (2005-05-19 11:14) [4]

Node: PVirtualNode;
....
Include( Node.States, vsHasChildren)


 
NeyroSpace ©   (2005-05-19 11:47) [5]

>fox ©   (19.05.05 11:14) [4]
Угу! Это все понятно! Но как указать, что моя картинка [+] находиться на расстоянии 10 пикселов левее надписи, имеет высоту 5 пикселов а ширину 15 пикселов?
Можно конечно самому отслеживать по перемещению мыши, но может есть "штатная" функция для отслеживания действий мыши?


 
fox ©   (2005-05-19 14:18) [6]

Тогда может я не понял вопроса. Если ты сам рисуешь картинку, то должен сам знать на каком расстоянии она находится. Если ты хочешь определить находиться ли мышка над [+], то смотри GetHitTestInfoAt и флаг hiOnItemButton в HitPositions


 
NeyroSpace ©   (2005-05-19 15:04) [7]

Да, сам я могу определить координаты, но мне показалось, что есть ф-ция, которая каждому узлу может задать координаты прямоугольника под [+] и соответственно будут срабатывать стандартные события, возвращая THitPosition.


 
charlie   (2005-05-19 17:59) [8]

А вот ты где его, [+] рисуешь? На стандартном месте или еще где?


 
NeyroSpace ©   (2005-05-20 12:40) [9]

Собственно говоря нужно изобразить следующее:

[+][ ][ ]Texttexttext

,где [ ] некие иконки. Т.е. плюсик должен рисоваться в самом начале и иметь строгие границы. Щас думаю как написать более компактно...
А непонятна одна вещь:

procedure TForm1.VirtualStringTree1MouseDown();
var
 HitInfo:THitInfo;
begin
VirtualStringTree1.GetHitTestInfoAt(x, y, false, HitInfo);
VirtualNode := HitInfo.HitNode;
if hiOnItemButton in HitInfo.HitPositions then ....;//on the button associated with an item

Я думал, что если гасишь отрисовку стандартной кнопки, то можно как-то задать границы своей и тогда HitInfo.HitPositions будет на твою кнопку срабатывать также как и на стандартную. Но похоже такой возможности нет, и прийдется самому пикселы считать...



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

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

Наверх




Память: 0.49 MB
Время: 0.039 c
3-1115148002
Genry
2005-05-03 23:20
2005.06.06
Упаковка и сборка мусора в Interbase


4-1113771014
totuin
2005-04-18 00:50
2005.06.06
Доступ в меню "Отправить"


1-1116676673
antol
2005-05-21 15:57
2005.06.06
как ввести логическое выражение


1-1116698048
Marina_Sm
2005-05-21 21:54
2005.06.06
Внешняя компонента для 1С


1-1116871645
Dmitry
2005-05-23 22:07
2005.06.06
Проблемы с цветовыми схемами Windows