Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.06.06;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.013 c
14-1116469702
/w\ax
2005-05-19 06:28
2005.06.06
Что за *cab?


14-1116321471
SNHD
2005-05-17 13:17
2005.06.06
Ищу Базы данных на Delphi 6


1-1116576122
Layner
2005-05-20 12:02
2005.06.06
Перевод из числа FLOAT в Single (запись из 4 байт)


1-1116506572
Cat
2005-05-19 16:42
2005.06.06
строку по одной цифре раскидать в массив Integer


14-1116505335
XCept.ion
2005-05-19 16:22
2005.06.06
получение данных о погоде





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский