Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Альтернативный TreeView / 25 сообщений из 63, страница 1 из 3
18.09.2018, 13:48
    #39704231
Aniskin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Альтернативный TreeView
Запилил альтернативный TreeView. Решил выложить в открытый доступ, может быть кому-нибудь пригодиться. Писал под свои конкретные нужды, поэтому исходный код достаточно своеобразен.

Картинка


Смотреть здесь .
...
Рейтинг: 0 / 0
18.09.2018, 14:28
    #39704288
rgreat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Альтернативный TreeView
С виду прикольно. Но не понятно. Твое - это то что слева?
Что умеет кроме рисования?
...
Рейтинг: 0 / 0
18.09.2018, 14:38
    #39704293
Aniskin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Альтернативный TreeView
rgreatЧто умеет кроме рисования?
А что нужно уметь? По сути библиотека просто эмулирует API стандартного виндового контрола TreeView. И стандартный дельфовый TTreeView думает, что использует виндовой класс TreeView. Т.е. все что может обычный TTreeView - может и альтернативный (вру конечно, не все, я не полностью реализовал API, может позднее доведу до ума).
...
Рейтинг: 0 / 0
18.09.2018, 15:08
    #39704326
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Альтернативный TreeView
Aniskin,

Таскать элементы можно?

И есть ли смысл в иконках раскрытия узла?
...
Рейтинг: 0 / 0
18.09.2018, 15:16
    #39704336
Aniskin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Альтернативный TreeView
_Vasilisk_Таскать элементы можно?А это можно делать в обычном TTreeView?

_Vasilisk_И есть ли смысл в иконках раскрытия узла?При нажатии на них происходит открытие/закрытие (как и в обычном TTreeView).
...
Рейтинг: 0 / 0
18.09.2018, 15:28
    #39704344
Aniskin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Альтернативный TreeView
_Vasilisk_И есть ли смысл в иконках раскрытия узла?И они убираются обычным для TTreeView путем - свойством ShowButtons.
...
Рейтинг: 0 / 0
18.09.2018, 15:49
    #39704365
Dimonka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Альтернативный TreeView
Я к примеру с трудом могу себе представить тех, кто реально пользуется TTreeView, потому что после TcxTreeView сложно захотеть пользоваться чем-то другим.
Была ещё одна забавная штука VirtualTreeView, на которой, если не ошибають, была построена часть интерфейса самого Delphi.

По поводу данного компонента:
Выглядит так себе, аля Windows 95.

Было бы круто, если бы элементы графа можно было двигать и рисовалось всё как-нибудь более прилично (gdi+).
Непонятно зачем соединяешь корневые элементы между собой?
Ну и ещё можно было бы делить элементы графика на секции - заголовок/описание.

Это первое, что приходит в голову.

А вообще молодец, что делишься. Таких как ты тут не так много. :-)
...
Рейтинг: 0 / 0
18.09.2018, 15:58
    #39704374
Aniskin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Альтернативный TreeView
DimonkaЯ к примеру с трудом могу себе представить тех, кто реально пользуется TTreeView, потому что после TcxTreeView сложно захотеть пользоваться чем-то другим.Если TcxTreeView является наследником TTreeView, то можно легким движением руки добавить в TcxTreeView такой же вид.

DimonkaВыглядит так себе, аля Windows 95.Цели сделать гламурненько не ставилось :)

DimonkaБыло бы круто, если бы элементы графа можно было двигатьКруто, но зачем?

Dimonkaи рисовалось всё как-нибудь более приличноРасшифруй мысль.

DimonkaНепонятно зачем соединяешь корневые элементы между собой?Настраивается, аналогично обычному TTreeView.
...
Рейтинг: 0 / 0
18.09.2018, 16:24
    #39704393
rgreat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Альтернативный TreeView
Aniskin,

Антиалиасинг кривых бы добавить.

Что за многострочный текст, которого нет в оригинале?
...
Рейтинг: 0 / 0
18.09.2018, 16:27
    #39704397
rgreat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Альтернативный TreeView
AniskinrgreatЧто умеет кроме рисования?
А что нужно уметь? По сути библиотека просто эмулирует API стандартного виндового контрола TreeView. И стандартный дельфовый TTreeView думает, что использует виндовой класс TreeView. Т.е. все что может обычный TTreeView - может и альтернативный (вру конечно, не все, я не полностью реализовал API, может позднее доведу до ума).чекбоксы, мультиселект, stateimage?
...
Рейтинг: 0 / 0
18.09.2018, 16:30
    #39704400
Aniskin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Альтернативный TreeView
rgreatАнтиалиасинг кривых бы добавить.
Где то можно подсмотреть реализацию?

rgreatЧто за многострочный текст, которого нет в оригинале?Если сделать

TreeView.AddChild(ATreeView.Items[0], '3' + sLineBreak + 'lines' + sLineBreak + 'item');

то виндовый treeview отобразит только первую строку многострочного текста.
...
Рейтинг: 0 / 0
18.09.2018, 16:32
    #39704401
Aniskin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Альтернативный TreeView
чекбоксы - в планах есть
мультиселект - обдумаю
stateimage - реализовано
...
Рейтинг: 0 / 0
18.09.2018, 16:51
    #39704425
L1G
L1G
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Альтернативный TreeView
как-то давно я тоже сделал свой treeview 'from scratch' (не основанный на виндовом, всё делает сам).
т.к. был только интерес проверить скорость на миллионе узлов или типа того и не было реальной нужды его применять - остался в зародышевом состоянии.
но код простой, если что - можно на его основе что-то более тяжелое делать.
делал еще для семерки, так что для юникода может потребоваться адаптация.

не из желания влезть в конкуренцию с ТС, но сугубо для развития темы - он там:
https://github.com/L-G-/Delphi-Code-Examples
...
Рейтинг: 0 / 0
18.09.2018, 19:01
    #39704503
rgreat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Альтернативный TreeView
AniskinГде то можно подсмотреть реализацию?
https://docs.microsoft.com/en-us/windows/desktop/gdiplus/-gdiplus-antialiasing-with-lines-and-curves-about
...
Рейтинг: 0 / 0
18.09.2018, 20:02
    #39704545
Котовасия
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Альтернативный TreeView
Aniskin,
с какой конкретной целью создавался этот контО'л?
...
Рейтинг: 0 / 0
18.09.2018, 21:22
    #39704589
makhaon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Альтернативный TreeView
в целом хорошо. gdi+ в помощь для анти-альязинга. не смотрел, как у тебя там линии рисуются, но gdi+ умеет их сам такие рисовать с альязингом сразу.
...
Рейтинг: 0 / 0
18.09.2018, 21:26
    #39704592
makhaon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Альтернативный TreeView
ключи для поиска: TGPGraphics, SetSmoothingMode, TGPSolidBrush, DrawCurve, DrawLines, TGPPen
...
Рейтинг: 0 / 0
18.09.2018, 21:40
    #39704596
DimaBr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Альтернативный TreeView
Судя по скрину, очень неэкономично расходуется прстранство
...
Рейтинг: 0 / 0
18.09.2018, 21:49
    #39704599
rgreat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Альтернативный TreeView
DimaBrСудя по скрину, очень неэкономично расходуется прстранствоЯвных косяков не видно. Вкусовщина у тебя.
...
Рейтинг: 0 / 0
18.09.2018, 22:01
    #39704601
DimaBr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Альтернативный TreeView
Сравниваем размеры одних и тех же данных и раскрытых веток
...
Рейтинг: 0 / 0
18.09.2018, 22:14
    #39704605
rgreat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Альтернативный TreeView
DimaBr,

Доктор, когда я вот вот так вот делаю у меня болит..((

- А вы вот вот так вот не делайте.
...
Рейтинг: 0 / 0
19.09.2018, 04:53
    #39704645
Aniskin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Альтернативный TreeView
Котовасияс какой конкретной целью создавался этот контО'л?
Эээ... что бы нарисовать дерево в виде дерева с возможностью интерактива. Надеюсь правильно понял вопрос.

makhaongdi+ умеет их сам такие рисовать с альязингом сразу
Спасибо, поизучаю, как будет время.

DimaBrСудя по скрину, очень неэкономично расходуется прстранство
Нужно понимать, что каждый UI элемент имеет свое предназначение. Мое дерево не предназначено для тысяч элементов. Оно скорее для отображения картинки вида "Вот я, вот мои папа и мама, вот мои бабушки и дедушки".
...
Рейтинг: 0 / 0
19.09.2018, 07:48
    #39704667
Aniskin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Альтернативный TreeView
Что то GDI+ меня особо не впечатлил:

...
Рейтинг: 0 / 0
19.09.2018, 08:47
    #39704683
defecator
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Альтернативный TreeView
AniskinЧто то GDI+ меня особо не впечатлил:


с GDI+ красиво выглядит, без GDI - словно рубили топором
...
Рейтинг: 0 / 0
19.09.2018, 08:49
    #39704687
defecator
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Альтернативный TreeView
я уже придумал, где использовать это няшное дерево,
усеры будут пищать от восторга
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Альтернативный TreeView / 25 сообщений из 63, страница 1 из 3
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]