Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
2 / 2 / 1
Регистрация: 16.06.2013
Сообщений: 33

Chart и StringGrid

19.07.2013, 23:32. Показов 2550. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Приветствую! До сих пор не приходилось строить графики и диаграммы средствами С++ Builder... вот столкнулся... почитал кое-чего... в чем то разобрался... что то не понятно...
У меня есть StringGrid1, заполняющийся по нажатию кнопки (точнее при открытии файла, но это не суть)... В нем данные разного типа (см. ниже). По каким то столбцам нужно строть график, по каким-то нет...

для начала я пробовал просто создать 3 Serries и записать туда вот так:
C++
1
2
3
 Series1->Add(StringGrid1->Cells[3][i+1].ToDouble(),StringGrid1->Cells[0][i+1].ToDouble(), clRed);
          Series2->Add(StringGrid1->Cells[4][i+1].ToDouble(),StringGrid1->Cells[0][i+1].ToDouble(), clBlue);
          Series3->Add(StringGrid1->Cells[5][i+1].ToDouble(),StringGrid1->Cells[0][i+1].ToDouble(), clGreen);
Графк строится... всё вроде правильно... но мне нужно чтоб Serries добавлялись после проверки - нужно ли строить график. Об этом я узнаю проверяя

как то примерно так

C++
1
2
if (Parametr[6][j]=="yes")  // если тут "yes" то столбец StringGrid1->Cells[j-4][i+1] попадает в Chart
         Series[j]->Add(StringGrid1->Cells[j][i+1].ToDouble(),StringGrid1->Cells[0][i+1].ToDouble(), clRed);


я так понимаю нужно воспользоваться Chart1->AddSeries()... но не знаю как... и как быть с цветом... как сделать чтоб и он менялся у каждого созданного Serries. Подскажите как лучше сделать, если кто знает)) мне кажется это должно сплошь и рядом встречаться, но почему то нормального понятного объяснения нигде не нашел.
Миниатюры
Chart и StringGrid  
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
19.07.2013, 23:32
Ответы с готовыми решениями:

из StringGrid в Chart
Будьте добры, Уважаемые коллеги, помогите, пожалуйста, разобраться в Chart и StringGrid. У меня двумерный массив и нужно построить...

Отрисовать в Chart значения из StringGrid
Мне нужно таблицу StringGrid запихнуть в Chart. Смотря похожие примеры ничего не выходило.

Перенос точек из Stringgrid в Chart
здравствуйте. есть заполненный стринггрид (2 столбца и 6 строк), но первая строка это подпись x и y, поэтому я как бы цикл начинаю с...

4
7 / 7 / 4
Регистрация: 16.02.2013
Сообщений: 172
20.07.2013, 11:17
Конечно я не знаю весь смысл Вашего проекта. Но перебор возможна сделать (я так делал) через АнсиСтринг все получалось. Примерно так. Если что не обессудьте. Создать определенные условия. Можно разделить графики, т.е отличие друг от друга по значениям. Т.е по максимуму или по минимуму. И соответственно они будут отличаться по цвету, но это и так понятно. Удачи. У меня тема была по нахождению максимального и минимального элемента массива. Посмотрите должно помочь.

C++
1
2
3
4
5
6
7
void __fastcall TForm1::Button1Click(TObject *Sender)
{
AnsiString sEdit1Text = Form1->Edit1->Text,sEdit2Text=Form1->Edit2->Text;
 
if (sEdit1Text<'0'||sEdit1Text>'9')
{Form3->ShowModal();}
 else {Form2->ShowModal(); return;}
0
2 / 2 / 1
Регистрация: 16.06.2013
Сообщений: 33
20.07.2013, 11:34  [ТС]
Цитата Сообщение от VOVA-74 Посмотреть сообщение
Конечно я не знаю весь смысл Вашего проекта. Но перебор возможна сделать (я так делал) через АнсиСтринг все получалось. Примерно так. Если что не обессудьте. Создать определенные условия. Можно разделить графики, т.е отличие друг от друга по значениям. Т.е по максимуму или по минимуму. И соответственно они будут отличаться по цвету, но это и так понятно. Удачи. У меня тема была по нахождению максимального и минимального элемента массива. Посмотрите должно помочь.

void __fastcall TForm1::Button1Click(TObject *Sender)
{
AnsiString sEdit1Text = Form1->Edit1->Text,sEdit2Text=Form1->Edit2->Text;

if (sEdit1Text<'0'||sEdit1Text>'9')
{Form3->ShowModal();}
else {Form2->ShowModal(); return;}
не совсем понял, чем мне поможет ваш код...
мне не нужно разделять графики... мне нужно все графики по некоторым столбцам построить в одном Chart'е...
если не затруднит, можете перефразировать то, что написали... до меня не дошло ))
0
7 / 7 / 4
Регистрация: 16.02.2013
Сообщений: 172
23.07.2013, 10:56
Такой код устроит Вас:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
float a,b,x,y,c;
 
a=0;
x=5;
y=2;
 
for(float b=8;b<15;b++)
 
{
    Series1->AddXY(x, a*x+b, "", clRed);
   }
    Series1->Active=true;
 
     for(float c=1;c<3;c++)
  {
    Series2->AddXY(y, a*y+c, "", clGreen);
   }
    Series2->Active=true;
}
0
 Аватар для Antiplayer
129 / 112 / 39
Регистрация: 27.09.2012
Сообщений: 305
23.07.2013, 16:13
Такой код был у меня программе. Каждая серия была своим цветом. Автоматически.

Это было в main.cpp
C++
1
2
3
4
5
TChartSeries *LineSeries = new TLineSeries(Chart1);
Chart1->AddSeries(LineSeries)
LineSeries->Title = StringGrid2->Cells[cold3][0] + " " +StringGrid2->Cells[0][rowd3];
graphcount++;
graph *Thr = new graph(false);
;

Далее запускался поток в котором эта срока кода обновляла данные для каждой из серии графика

C++
1
Form3->Chart1->Series[p]->Add(gph, Time());
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.07.2013, 16:13
Помогаю со студенческими работами здесь

StringGrid и Chart
Добрый день. Помогите решить небольшой баг. У меня есть заполненный StringGrid, он находиться в юните под названием Laba2 Form2. И нужно,...

StringGrid + Chart
Добрый день, уважаемы! Прошу консультации. Есть StringGrid, в котором содержится информация о плательщиках и величине задолженностей. К...

Заполнение stringgrid и Chart
Здравствуй пишу программу и возникло 2-е проблемы: 1) Вопрос по stringgrid! есть код на добавления данных в stringgrid procedure...

Построить график с Stringgrid в Chart
Ситуация такова. Я записал значения с датчиков, отправил по ардуино через юарт, в делфи все записывается в стринггрид, строятся графики в...

Построить график в Chart по координатам из StringGrid
Доброго всем времени суток. У меня возник такой вопрос, каким образом можно построить график в Chart, по данным в StrinGrid? StrinGrid:...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
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, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru