![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,434
|
![]()
Доброго времени суток!
Как вставлять в этом компонент др. компоненты хоть куда-нибудь? Или подскажите что-то похожее со след. функциями: 1. Группировка(сворачиваемая, разворачиваемая) 2. Сортировка групп, сортировка в группе отдельно от остального. 3. Вставка своих элементов управления. Последний раз редактировалось Человек_Борща; 15.01.2013 в 18:36. |
![]() |
![]() |
![]() |
#2 |
Software Developer
Старожил
Регистрация: 19.12.2008
Сообщений: 2,070
|
![]()
Должны быть соответствующие события для рисования ноды. Рисуете вы например ноду самостоятельно и вот нужно разместить в ноде кнопку например - создаете кнопку настраиваете ее как вам нужно, указываете top, left и в качестве парента назначаете данный компонент для отображения списка.
Довольно часто сталкиваюсь с компонентом VirtualTreeview (а вот кстати и ссылки я вам на мануалы приводил), то в данном компоненте все это добро можно делать в событии AfterPaint()...так же и вот сюда можно еще добавить вызов Change().
Будь проще и люди к тебе потянутся
|
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,434
|
![]()
VT все же проще как мне кажется.
Можете подсказать, как мне сделать VT похожим на ListView? И как в колонку вставлять свой редактор/компонент?(Выпад. список, поле редактирования(актуально оно для subitems?)) Ситуация такая: Есть списки TList. Они хранят объекты, объекты содержат строки и др. объекты а так же методы, функции, свойства и переменные. Есть ситуации когда объекты одного списка это группы, а элементы другого списка - дочерние элементы групп(ы). Вот тут мне категорически удобно разворачивать и сворачивать. Ближе всего мне TListView, там есть все что надо: 1. Удобное и простое отображение и хранение данных 2. Группировка Нету плюсиков и минусиков чтобы прятать дочерние элементы групп и это плохо. Поэтому на загуглил и нагуглил EasyListView, который схож с VirtualTree, оказалось не только родство но и тем фактом, что документации вообще 0. Пришлось его откинуть и вернуться к VirtualTree. Возникают вопросы: 1. как хранить в Node объекты списка? 2. Как отображать в subitem'ах какого-либо Node, в такой-то колонке, мой компонент(кнопка, поле ввода, ещё что-то)? Само VirtualTree выступает в роли редактора и рождается только тогда, когда пользователь открывает окно редактора какого-то списка. Из этого следует что дерево передается классу списка, и он его заполняет. Данные сами по себе существуют всегда, только если пользователь, редактором не прибил какой-то объект сам. Далее сортировка: Допустим у нас есть Tree в котором список групп и дочерних элементов к ним. Группы нужно сортировать в порядке приоритета, а элемента группы в ином порядке и по другому признаку. Чем это осуществить? Последний раз редактировалось Человек_Борща; 16.01.2013 в 18:02. |
![]() |
![]() |
![]() |
#4 |
Software Developer
Старожил
Регистрация: 19.12.2008
Сообщений: 2,070
|
![]()
Для начала сделал простой пример. Посмотрите что к чему там, какие-то базовые вещи должны стать понятны.
Код конечно без комментариев, но чуть позже постараюсь в эту тему описать подробнее ваши вопросы.
Будь проще и люди к тебе потянутся
|
![]() |
![]() |
![]() |
#5 | ||||
Software Developer
Старожил
Регистрация: 19.12.2008
Сообщений: 2,070
|
![]()
По поводу
Цитата:
Что касается Цитата:
Цитата:
Цитата:
p.s. Примеры в аттачах писал "на коленке", так что красивость и правильность кода не гарантирована.
Будь проще и люди к тебе потянутся
Последний раз редактировалось spamer; 19.01.2013 в 04:33. |
||||
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,434
|
![]()
Кое что это прояснило.
Есть событие выделения ветвей? Ответ: Событие OnChange. Я начал по-тихоньку разбираться. И честно говоря - VirtualTrees это круче ListView в овер9000 раз. Теперь такая дилема: Ноды можно редактировать, и редактор появляется только тогда, когда я тыкаю по самому тексту нода. Это не хорошо. Чем отрегулировать это? В дереве у меня 2 колонки, и обе редактируются на ура. Однако хотелосьбы не тыкать на сам текст а както, проверять чтоли, что мышка находится в диапозоне колонки X и элемент Y переходит в редактирование... В ListView я так и делал, Брал координату мыши относительно ListView b cмотрел где находится она по оси X, если входит в предел от кролонки слева и до колонки справа то включается редактор.. Последний раз редактировалось Человек_Борща; 23.01.2013 в 23:53. |
![]() |
![]() |
![]() |
#7 | ||
Software Developer
Старожил
Регистрация: 19.12.2008
Сообщений: 2,070
|
![]() Цитата:
В обновленном аттаче показан пример использования MultiSelect режима. Цитата:
![]() p.s. Исходник лучше смотреть дифом с предыдущей версией.
Будь проще и люди к тебе потянутся
Последний раз редактировалось spamer; 24.01.2013 в 02:26. |
||
![]() |
![]() |
![]() |
#8 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,434
|
![]()
хех придется делать по старинке, тогда.
Вот такой код писался чтобы проверить наличие мышки в такой-то позиции при дабл-клике: Код:
По событию OnClick действовала все та же функция только if not MauseInRange и если условие срабатывает, редактор прячется а новые данные запоминаются. А как вызывать редактор для item X в колонке Z? Последний раз редактировалось Человек_Борща; 24.01.2013 в 03:29. |
![]() |
![]() |
![]() |
#9 | |
Software Developer
Старожил
Регистрация: 19.12.2008
Сообщений: 2,070
|
![]() Цитата:
Вот...из последнего вашего поста, я так понимаю нужно что-то наподобие этого: Код:
Будь проще и люди к тебе потянутся
|
|
![]() |
![]() |
![]() |
#10 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,434
|
![]()
Я для создания редактора использую IVTEditLink Интерфейс =)
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как изменить программу так, чтобы круг двигался не по прямой, а по какому - нибудь другому закону.Например,по какой-нибудь кривой | kg250493 | C++ Builder | 2 | 24.11.2012 13:44 |
Куда пойти, куда податься | Delрhi | Свободное общение | 4 | 06.02.2012 12:39 |
Использование компонента idUdpClient без компонента TForm. | Riply | Компоненты Delphi | 2 | 18.02.2011 21:21 |
Куда отследить куда утекает память? | TwiX | Общие вопросы Delphi | 6 | 02.03.2010 03:10 |