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

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

10.12.2018, 06:15. Показов 2000. Ответов 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
33197 / 21493 / 8233
Регистрация: 22.10.2011
Сообщений: 36,882
Записей в блоге: 12
10.12.2018, 12:56
TChart, изменить цвет уже нарисованной линии
1
Модератор
 Аватар для D1973
9908 / 6445 / 2455
Регистрация: 21.01.2014
Сообщений: 27,354
Записей в блоге: 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
9908 / 6445 / 2455
Регистрация: 21.01.2014
Сообщений: 27,354
Записей в блоге: 3
10.12.2018, 15:20
Цитата Сообщение от vladimirzay610 Посмотреть сообщение
получается я каждую секунду буду пробегать по 20ти графикам
 Комментарий модератора 
Именно для Вас написан пункт 4.7 Правил форума:
Как можно более полно описывайте суть проблемы или вопроса, что было сделано для ее решения и какие результаты получены.


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

Не по теме:

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

0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33197 / 21493 / 8233
Регистрация: 22.10.2011
Сообщений: 36,882
Записей в блоге: 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
33197 / 21493 / 8233
Регистрация: 22.10.2011
Сообщений: 36,882
Записей в блоге: 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
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru