GTFControl - Диаграмма задач\Ганта

Планы, идеология, архитектура и т.п.

Модератор: Модераторы

Ответить
Аватара пользователя
Sharfik
энтузиаст
Сообщения: 860
Зарегистрирован: 20.07.2013 01:04:30

GTFControl - Диаграмма задач\Ганта

Сообщение Sharfik »

Предыстория:
Жизнь не хочет чтобы у нас все было по плану, и директора компаний не сильно стремятся налаживать порядок работ, вот пришлось заняться тем чем не собирался - планирование задач. Под Lazarus не так много компонентов позволяющих отрисовывать диаграмму задач(Ганта), а те что есть и легко находятся (включая демки и компоненты в Typhon) мне не понравились. Ну не выглядят они гибкими и развиваемыми. В простейшем случае можно использовать просто VirtualStreengTree, но с живым ручным перемещением задач на сетке не уверен что там получится справится. Будет очень крутое отображение и все. У меня были наработки в другом направлении, которые после доработки вылились вот в такой класс компонента. Опубликовал сегодня в Github.

Изображение

Исходники и демка:
https://github.com/pichugin-m/pk_gtfc

Описание:
В основе лежит компонент контейнера визуальных объектов, адаптированный и переработанный для построения диаграмм Ганта. Система координат упрощена до целых чисел, но сохранено свободное пространство ограниченное только диапазоном выводимых дат.

Реализованный функционал:
- отрисовка задач;
- отрисовка диапазона задач;
- отрисовка вех;
- отрисовка связей;
- перемещение задач мышкой по сетке времени;
- раздельные меню для зоны сетки и дерева;
- встроенный экспорт в JPEG;

Планы возможных обновлений:
- редактирование ширины столбцов дерева;
- сортировка по клику на заголовках дерева;
- управление с клавиатуры;
- более красивая отрисовка линий связей;
- альтернативный вариант канвы (возможно BGRA, Image32)
v-t-l
энтузиаст
Сообщения: 745
Зарегистрирован: 13.05.2007 16:27:22
Откуда: Belarus

Сообщение v-t-l »

Планы возможных обновлений:
- кросплатформенность;
...
:D
Аватара пользователя
Sharfik
энтузиаст
Сообщения: 860
Зарегистрирован: 20.07.2013 01:04:30

Сообщение Sharfik »

...там много всего еще допиливать.
На данный момент там все на базе обычной канвы, не помню чтобы что то специфичное было. Должно работать.

PS: Смотрел одно интервью по PostgreSQL. Мысль там понравилась - "открытое ПО это не про халяву, а про совместную разработку". Кому нужно запустить на Linux и т.п. всегда могут скомпилировать, если какая то часть не заработает добавить разделение для конкретной ОС и реализовать несколько новых решений. А потом в Issues GitHub мне закинуть улучшение, чтобы и я учел в сборках.
Аватара пользователя
Sharfik
энтузиаст
Сообщения: 860
Зарегистрирован: 20.07.2013 01:04:30

Сообщение Sharfik »

"...Три тысячи чертей!". Вот как надо было догадаться, что один и тот же класс в Лазарус и Тайфун написаны по разному? Взял класс TListCollumns из базового TListView, с прицелом на развитие. И оказалось, что процедура создания в Lazarus и Typhon разная у него. Пофиксил, но осадочек остался.
Ответить