| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Как отрисовать такое в VirtualDrawTree |
| Автор: GORA 10.1.2008, 17:10 | ||
| Вот возникла потребность выводить имена пользователей в VirtualTreeView примерно в таком виде: то есть имеются категории (на картинке НС-35 и Друзья), к каждой из которых относятся пользователи, каждому пользователю соответствуют картинки, показывающие определенные состояния, на картинке просто для примера стоят, но расположены они должны быть именно так. Создал такие типы для хранения пользователей:
Так вот, интуиция подсказывает, что использовать надо VirtualDrawTree, Подскажите пожалуйста как сделать что то подобное |
| Автор: MetalFan 10.1.2008, 19:04 |
| отрисовываешь ручками, ловишь куда пользователь кликнул. реагируешь. есть какие-то более точные вопросы? |
| Автор: MetalFan 10.1.2008, 19:53 |
| 1. определяешь координаты иконки относительно отрисовываемого элемента 2. отрисовываешь иконку 3. к п.1, если есть еще иконки клик: 1. берешь координаты ректа иконки 2. проверяешь вхождение координат клика с пом PtInRect. делаешь выводы. 3. если есть еще иконки, то к п.1 что еще непонятно? конкретная реализация? попробуй сам, если не получится - спрашивай) |
| Автор: Sanchezzz 10.1.2008, 19:54 |
| качаещь http://quadr0.pochta.ru/VirtualTreeview/virtualtreeview_pdf.zip help+примеры к компоненту русский все ровно пригодится в нем есть пример Fig 1.5 посмотри более подходит под твои замыслы. |
| Автор: GORA 11.1.2008, 09:51 | ||
| MetalFan, Хорошо, попробую сам, и еще вопрос: как разделить отрисовку родительских нодов(категорий) и дочерних(юзеров)? Ведь в родительских надо будет еще рисовать некое подобие треугольников при открытом ноде и при закрытом. Если так сделать:
Или как то по другому? |
| Автор: VICTAR 11.1.2008, 11:33 |
| Например проверять Assigned(NodeParent[Node]) если правда, то это НЕ родитель. |
| Автор: MetalFan 11.1.2008, 12:41 |
| GORA, ну тут еще можно вариант предложить - при загрузке выставлять флаг, что это за элемент... группа или элемент группы Добавлено через 13 минут и 21 секунду кстати, треугольник вместо квадратика рисуется в случае ButtonStyle := bsTriangle |
| Автор: MetalFan 11.1.2008, 13:01 |
| либо можно свои через StateImages |
| Автор: GORA 11.1.2008, 18:50 | ||
Ну так мне же его все равно отрисовывать придется, и тут хоть кружок, хоть звезду ставь, разницы никакой, я правильно понимаю? |
| Автор: MetalFan 11.1.2008, 18:57 |
нет. он отрисовывается средствами VT |
| Автор: GORA 11.1.2008, 19:00 |
| MetalFan, А тогда как получается? я пишу только обработку отрисовки самих элементов группы, а сами группы как отрисовывать? |
| Автор: MetalFan 11.1.2008, 23:25 |
| как-как? ручками) тем более, если тебе нужен такой-же треуголничег, как и на картинке, то и его придется ручками рисовать... |
| Автор: aktuba 12.1.2008, 04:22 | ||||||
Неа... Можно и VT заставить это делать ;)
Вот же, ответ уже дали:
|
| Автор: MetalFan 12.1.2008, 09:45 |
как? не нашел возможности изменения цвета треугольника.... Добавлено через 34 секунды разве что через stateImages |
| Автор: halfhope 15.8.2012, 18:17 |
| На всякий случай. Есть отличная документация VirtualTreeView на русском от Garnet (Quadr0), А так же примеры. Поищите на сайте drkb. |