Вопрос про TChart. Где про него почитать?

Вопросы программирования и использования среды Lazarus.

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

Вопрос про TChart. Где про него почитать?

Сообщение Climber » 23.04.2011 23:51:32

Интересует построение графиков по данным из БД.
У меня есть книжка по Delphi - там примерно 20 страниц про этот компонент, но вопрос работы с БД не освещается вообще. В интернете находятся только вопросы на форумах, толковых статей нет (в лучшем случае повторяют то, что есть у меня в книге).

Я попробовал освоить методом научного тыка.
Кинул компонент TChart, TQuery, TDataSource, TDBChartSource, два раза кликнул по TChart, в появившемся окне нажал "Добавить", добавилась новая серия, в свойствах серии указал Source - DBChartSource1, написал текст запроса. При запуске - ошибка "List index (0) out of bounds". Что делать дальше - вообще не понятно.

Пошлите меня куда-нибудь, где матчасть можно изучить...
Climber
постоялец
 
Сообщения: 415
Зарегистрирован: 03.06.2007 20:09:57
Откуда: Москва

Re: Вопрос про TChart. Где про него почитать?

Сообщение Максим » 24.04.2011 02:17:47

В каталоге lazarus\components\tachart\demo\ имеется куча демок. Ковыряйте.

Да, ну и Lazarus обновить бы не мешало.
Аватара пользователя
Максим
энтузиаст
 
Сообщения: 598
Зарегистрирован: 27.07.2007 01:51:43
Откуда: Москва

Re: Вопрос про TChart. Где про него почитать?

Сообщение Ask » 24.04.2011 08:36:13

Climber писал(а):При запуске - ошибка "List index (0) out of bounds". Что делать дальше - вообще не понятно.


Хоть мой хрустальный шар сегодня мутноват, всё же могу предположить, что у DBChartSource
не указаны поля FieldX и FieldY.

Это, кстати, не повод для TChart вылетать с ошибкой -- исправил в r30444, номинировал в back-port.

Максим писал(а):Да, ну и Lazarus обновить бы не мешало.


Это точно.
Ask
постоялец
 
Сообщения: 163
Зарегистрирован: 25.12.2008 03:51:37

Re: Вопрос про TChart. Где про него почитать?

Сообщение Climber » 25.04.2011 14:07:13

Ask писал(а):
Climber писал(а):При запуске - ошибка "List index (0) out of bounds". Что делать дальше - вообще не понятно.


Хоть мой хрустальный шар сегодня мутноват, всё же могу предположить, что у DBChartSource
не указаны поля FieldX и FieldY.

Это, кстати, не повод для TChart вылетать с ошибкой -- исправил в r30444, номинировал в back-port.

Максим писал(а):Да, ну и Lazarus обновить бы не мешало.


Это точно.

С хрустальным шаром все ОК - мой метод научного тыка эти поля не осилил. Лазарус, кстати, у меня последний (0.9.30).
Только вот эти поля все равно не спасли. Я хотел сделать PieChart, сделал запрос, который возвращает столбцы "Сумма" и "Категория". Как ни заполняй поля FieldX и FieldY, ответ один: "Field "Категория" is invalid float" или что-то в этом роде.
Climber
постоялец
 
Сообщения: 415
Зарегистрирован: 03.06.2007 20:09:57
Откуда: Москва

Re: Вопрос про TChart. Где про него почитать?

Сообщение Ask » 25.04.2011 19:48:25

Ask писал(а):Лазарус, кстати, у меня последний (0.9.30).

Хм. Тогда советую обновить подпись :)

Я хотел сделать PieChart, сделал запрос, который возвращает столбцы "Сумма" и "Категория". Как ни заполняй поля FieldX и FieldY, ответ один: "Field "Категория" is invalid float" или что-то в этом роде.


Я ведь почему про хрустальный шар говорил -- надо в таких случаях постить пример проекта, иначе приходится угадывать, где ошибка.
На этот раз, из сообщения можно предположить, что в поле "Категория" записаны не вещественные числа, а, например, строки,
и поэтому использовать его в качестве Y не получится. Кроме того, у PieChart вообще нет координаты X.
Так что предлагаю установить FieldY=Сумма FieldText=Категория
Ask
постоялец
 
Сообщения: 163
Зарегистрирован: 25.12.2008 03:51:37

Re: Вопрос про TChart. Где про него почитать?

Сообщение Climber » 26.04.2011 16:10:45

Ask писал(а):Я ведь почему про хрустальный шар говорил -- надо в таких случаях постить пример проекта, иначе приходится угадывать, где ошибка.

Заглядывать в хрустальный шар не пришлось бы, если бы мне сразу дали хотя бы примерное направление, где почитать про работу TChart + БД. Хотя что-то мне уже подсказывает, что такого в природе не существует.
Но оно таки заработало!
Запрос возвращает числа в столбце "Сумма" и подписи в столбце "Категория". Я сделал FieldY = "Сумма" и FieldText = "Категория", FieldX оставил пустой.
Теперь надо разобраться с легендой...
Climber
постоялец
 
Сообщения: 415
Зарегистрирован: 03.06.2007 20:09:57
Откуда: Москва

Re: Вопрос про TChart. Где про него почитать?

Сообщение alexs » 26.04.2011 20:11:50

Climber писал(а):Хотя что-то мне уже подсказывает, что такого в природе не существует.
Но оно таки заработало!

Вот вам и карты в руки. Пол свежим следам написать манул - как вы добились, чтобы оно заработало...
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: Вопрос про TChart. Где про него почитать?

Сообщение Climber » 26.04.2011 21:40:36

alexs писал(а):
Climber писал(а):Хотя что-то мне уже подсказывает, что такого в природе не существует.
Но оно таки заработало!

Вот вам и карты в руки. Пол свежим следам написать манул - как вы добились, чтобы оно заработало...

Весь мануал - в этом топике, мне добавить нечего :)
Вот когда до конца разберусь - тогда, может быть...

Кстати: диаграмма выглядит не очень красиво, это можно как-то исправить? Ну то есть проблема решится только созданием потомка или можно с событиями поколдовать?
Climber
постоялец
 
Сообщения: 415
Зарегистрирован: 03.06.2007 20:09:57
Откуда: Москва

Re: Вопрос про TChart. Где про него почитать?

Сообщение Ask » 27.04.2011 05:31:29

Climber писал(а):Вот когда до конца разберусь - тогда, может быть...


Было бы неплохо :)

Climber писал(а):диаграмма выглядит не очень красиво, это можно как-то исправить?


Это можно прямо сразу на башорг. И никто ведь не поверит, что программист написал, а не заказчик.
Пожалуйста, поконкретнее.
Ask
постоялец
 
Сообщения: 163
Зарегистрирован: 25.12.2008 03:51:37

Re: Вопрос про TChart. Где про него почитать?

Сообщение Climber » 27.04.2011 09:33:15

Давно мечтаю попасть на башорг. Не берут :(

Вот пример того, что есть и чего хочется 8)
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Climber
постоялец
 
Сообщения: 415
Зарегистрирован: 03.06.2007 20:09:57
Откуда: Москва

Re: Вопрос про TChart. Где про него почитать?

Сообщение Ask » 27.04.2011 10:17:33

Climber писал(а):Вот пример того, что есть и чего хочется


Ого. Тут не в наследовании дело -- нужно найти код, который умеет рисовать такие
эффекты. Это ведь не просто градиент, а хитрое сочетание.

Могу добавить event в TPieSeries аналогично тому, как сделано в TBarSeries.

Метки нужны именно внутри?
Ask
постоялец
 
Сообщения: 163
Зарегистрирован: 25.12.2008 03:51:37

Re: Вопрос про TChart. Где про него почитать?

Сообщение Climber » 27.04.2011 10:35:05

Метки внутри не нужны, это просто такая диаграмма попалась. Просто хотел показать красивую градиентную заливку. На самом деле, даже Excel настолько красиво не умеет, так что я не особо расстраиваюсь. У меня была идея рисовать такие штуки с помощью OpenGL, только надо придумать способ, как это правильно организовать..

На самом деле, достаточно просто добавить антиалиасинг...
Climber
постоялец
 
Сообщения: 415
Зарегистрирован: 03.06.2007 20:09:57
Откуда: Москва

Re: Вопрос про TChart. Где про него почитать?

Сообщение dunin » 27.04.2011 13:00:35

Ask писал(а):...
Метки нужны именно внутри?

Кстати, метки внутри не помешали бы.
Аватара пользователя
dunin
энтузиаст
 
Сообщения: 634
Зарегистрирован: 02.05.2007 13:18:11
Откуда: Тољя††и

Re: Вопрос про TChart. Где про него почитать?

Сообщение Ask » 27.04.2011 15:39:18

достаточно просто добавить антиалиасинг


Уже есть.
См. aggpasdemo и bgrademo, а под Qt -- просто basicdemo.
Ask
постоялец
 
Сообщения: 163
Зарегистрирован: 25.12.2008 03:51:37

Re: Вопрос про TChart. Где про него почитать?

Сообщение Timid » 27.04.2011 17:03:19

2 Climber

Могу посоветовать только сделать свои компоненты. Но не нужно "заморачиваться" с OpenGL. Используйте векторную отрисовку. Например, в SVG или WMF. Это не сложно, но довольно муторно, если захотите "воспроизвести" TChart'ы полностью.
"Отрисовать" затем все можно через TImage.

Если начнете писать, то могу попробовать присоединиться.

PS. Моя проблема сейчас - "рендер" RTF-форматированного текста в WMF или SVG. Вот это действительно сложно :)
Timid
постоялец
 
Сообщения: 290
Зарегистрирован: 21.11.2007 21:33:15

След.

Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 48

Рейтинг@Mail.ru