Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 11.09.2017
Сообщений: 8

TDbChart (TChart), как нарисовать тренд разных цветов?

10.12.2018, 06:15. Показов 2041. Ответов 10

Студворк — интернет-сервис помощи студентам
есть набор данных
iddt,value,status
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
10.12.2018, 06:15
Ответы с готовыми решениями:

Нарисовать прямоугольники разных цветов
V ekrane risujeca raznix cvetov priamougolniki, ( v priamougolnike priamougolnik), kogda prekras4iajet risovat, nazav space vsio dalzno...

Нарисовать вертикальные линии разных цветов
Вывести в ряд 10 вертикальных линий разных цветов, используя оператор gotoxy. Помогите пожалуйста.А то у меня это задание вообще не...

Нарисовать 9 граненных стаканов разных цветов
Разработать программу решения задачи, в которой необходимо нарисовать 9 граненных стаканов разных цветов. расположение по 3 стакана в...

10
 Аватар для lifeforce
266 / 211 / 89
Регистрация: 27.09.2010
Сообщений: 1,234
10.12.2018, 11:23
vladimirzay610,
TChart - это и делает.
0
0 / 0 / 0
Регистрация: 11.09.2017
Сообщений: 8
10.12.2018, 12:25  [ТС]
Извините, я не дописал сообщение, случайно нажал опубликовать.

вопрос дожен быть такой:
в наборе данных для тренда есть:

времязначениедостоверность
0151
1101
260
3240
4451
5201
6241
7151


если достоверность 1 то рисовть линию синим, а если достоверность 0 то линию рисовать серым цветом.
Миниатюры
TDbChart (TChart), как нарисовать тренд разных цветов?  
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33379 / 21503 / 8236
Регистрация: 22.10.2011
Сообщений: 36,899
Записей в блоге: 12
10.12.2018, 12:56
TChart, изменить цвет уже нарисованной линии
1
Модератор
 Аватар для D1973
9917 / 6454 / 2455
Регистрация: 21.01.2014
Сообщений: 27,395
Записей в блоге: 3
10.12.2018, 12:59
C++
1
2
3
4
5
6
7
8
9
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  int A[8][3] = {{0, 15, 1}, {1, 10, 1}, {2, 6, 0},  {3, 24, 0},
                 {4, 45, 1}, {5, 20, 1}, {6, 24, 1}, {7, 15, 1}};
  TColor C[2] = {clRed, clBlue};
  Series1->AddXY(A[0][0], A[0][1], "", C[A[0][3]]);
  for(int i = 1; i < 8; i++)
    Series1->AddXY(A[i][0], A[i][1], "", C[A[i - 1][2]]);
}
Миниатюры
TDbChart (TChart), как нарисовать тренд разных цветов?  
1
0 / 0 / 0
Регистрация: 11.09.2017
Сообщений: 8
10.12.2018, 14:37  [ТС]
Спасибо!

да, для TChart понятно, а DBChart?
получается я каждую секунду буду пробегать по 20ти графикам (и 20 наборам данных) и перерисовывать их цвет?, как то это не продуктивно...


или забить на DBCart и сразу перекидывать самостоятельно из набора данных (ADO) в цикле строя линию нужного цвета в TChart:

C++
1
Chart1->Series[0]->AddXY(Время, ADOStoredProc->FieldByName("Значение")->AsFloat,"", достоверность==1? clGreen : clGray);
так?
0
Модератор
 Аватар для D1973
9917 / 6454 / 2455
Регистрация: 21.01.2014
Сообщений: 27,395
Записей в блоге: 3
10.12.2018, 15:20
Цитата Сообщение от vladimirzay610 Посмотреть сообщение
получается я каждую секунду буду пробегать по 20ти графикам
 Комментарий модератора 
Именно для Вас написан пункт 4.7 Правил форума:
Как можно более полно описывайте суть проблемы или вопроса, что было сделано для ее решения и какие результаты получены.


ну, это уже Вам виднее... Я ответил на поставленный в посте #3 вопрос, а дальнейшее развитие техзадания, причем без каких-либо уточнений, с какими-то обрывками исходных данных - это уже вообще разговор не о чем...
Но суть-то остается той же: какая разница, использую я статически заданный массив или получаю тот же массив из БД посредством запроса...

Не по теме:

DBAware-компоненты я бы вообще не советовал использовать...

0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33379 / 21503 / 8236
Регистрация: 22.10.2011
Сообщений: 36,899
Записей в блоге: 12
10.12.2018, 17:13
Лучший ответ Сообщение было отмечено vladimirzay610 как решение

Решение

Цитата Сообщение от vladimirzay610 Посмотреть сообщение
получается я каждую секунду буду пробегать по 20ти графикам (и 20 наборам данных) и перерисовывать их цвет?
Ну, если событие OnAfterAdd для серии, которое вызывается каждый раз, когда в серию добавляется новая линия - для слабаков, значит, придется вручную. Я сделал вот так:

C++
1
2
3
4
5
6
void __fastcall TForm1::Series1AfterAdd(TChartSeries *Sender, int ValueIndex)
{
    TColor clr[2] = {clGray, clBlue};
    Sender->ValueColor[Sender->Count() - 1] = clr[Sender->Tag];
    Sender->Tag = DataSource1->DataSet->FieldByName("status")->AsInteger;
}
, нормально все отрисовалось:
Миниатюры
TDbChart (TChart), как нарисовать тренд разных цветов?  
1
0 / 0 / 0
Регистрация: 11.09.2017
Сообщений: 8
17.12.2018, 12:26  [ТС]
volvo,
существует ли возможность в коде
C++
1
2
3
4
5
6
void __fastcall TForm1::Series1AfterAdd(TChartSeries *Sender, int ValueIndex)
{
    TColor clr[2] = {clGray, clBlue};
    Sender->ValueColor[Sender->Count() - 1] = clr[Sender->Tag];
    Sender->Tag = DataSource1->DataSet->FieldByName("status")->AsInteger;
}
DataSource1 выразить через Sender?

потому что используется несколько DBChart, каждый со своим DataSource
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33379 / 21503 / 8236
Регистрация: 22.10.2011
Сообщений: 36,899
Записей в блоге: 12
17.12.2018, 17:10
Можно попробовать вот так:
C++
1
2
3
4
5
6
void __fastcall TForm1::Series1AfterAdd(TChartSeries *Sender, int ValueIndex)
{
    TColor clr[2] = {clGray, clBlue};
    Sender->ValueColor[Sender->Count() - 1] = clr[Sender->Tag];
    Sender->Tag = reinterpret_cast<TDataSet*>(Sender->DataSource)->FieldByName("status")->AsInteger;
}
2
0 / 0 / 0
Регистрация: 11.09.2017
Сообщений: 8
18.12.2018, 06:51  [ТС]
volvo,
Спасибо огромное! работает)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
18.12.2018, 06:51
Помогаю со студенческими работами здесь

Нарисовать полукруг, разделенный на 3 части разных цветов
Как сделать полукруг разбитый на 3 неравных части закрашенный разными цветами... подскажите кодом желательно

Нарисовать звезды на небе разных размеров и цветов
помогите пожалуйста создать программу : звёздное небо и чтобы появлялись и исчезали разноцветные звёзды в разных местах и разных размеров...

Нарисовать 3 прямоугольниа разных цветов в каждом из них написать цвет
Нарисовать 3 прямоугольниа разных цветов в каждом из них написать цвет

Есть н цветов разных видов. Составьте все возможные сочетания букетов из всех этих цветов. Количество цветов и их названия вводит пользователь
Есть n цветов разных видов. Составьте все возможные сочетания букетов из всех этих цветов. Количество цветов и их названия вводит...

Нужно нарисовать куб в котором с каждой стороны по 6 квадратов и они все разных цветов
Помогите пожалуйста!!!! очень прошу, буду очень благодарна если поможете мне. Мне нужно решить задачу на графику с помощью graph, нужно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru