Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.04.2017, 11:14   #1
Ernest027
Форумчанин
 
Регистрация: 27.04.2015
Сообщений: 437
По умолчанию dbchart и несколько series

Всем привет)
Пытаюсь создать несколько сериес в дбчарте.
Делаю следующим образом:
Код:
DBChart2.ClearChart;
while not DT2.ADOQuery15.Eof do
begin
  DBChart2.Series[DT2.ADOQuery15.RecNo].DataSource:=DT2.DataSource1;
  DBChart2.Series[DT2.ADOQuery15.RecNo].XValues.ValueSource:=FloatToStr(dt2.ADOQuery1.FieldValues['Frequency']);
  DBChart2.Series[DT2.ADOQuery15.RecNo].YValues.ValueSource:=FloatToStr(dt2.ADOQuery1.FieldValues[DT2.ADOQuery15.FieldByName('PointName').AsString]);
  DT2.ADOQuery15.Next;
  end;
выдает ошибку argument out of range.
Подскажите, что я делаю не так?
Спасибо)
Ernest027 вне форума Ответить с цитированием
Старый 19.04.2017, 11:44   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,515
По умолчанию

никогда не работал ч DBchart, но ...
учитывая DBChart2.ClearChart;
у вас ПУСТОЙ список, который надо заполнить путем ДОБАВЛЕНИЯ
Код:
r:=DBChart2<.Series ???>.Add; // и скорее всего это будет функция возвращающая вновь созданный элемент
r.DataSource:=DT2.DataSource; //который теперь МОЖНО заполнить
r.XValues.ValueSource:= ....
программа — запись алгоритма на языке понятном транслятору
evg_m на форуме Ответить с цитированием
Старый 19.04.2017, 14:02   #3
Ernest027
Форумчанин
 
Регистрация: 27.04.2015
Сообщений: 437
По умолчанию

Решил прислушаться и применил tchart.
Код:
var
i,j:Real;
begin
i:=dt2.ADOQuery1.FieldValues['Frequency'];
j:=dt2.ADOQuery1.FieldValues[DT2.ADOQuery15.FieldByName('PointName').AsString];

while not DT2.ADOQuery15.Eof do
begin
  Chart1.Series[DT2.ADOQuery15.RecNo-1].AddXY(i,j,'',clred);
  DT2.ADOQuery15.Next;
  end;
такая же ошибка
Код:
while not DT2.ADOQuery15.Eof do
begin
while not dt2.ADOQuery1.Eof do
begin
i:=dt2.ADOQuery1.FieldValues['Frequency'];
j:=dt2.ADOQuery1.FieldValues[DT2.ADOQuery15.FieldByName('PointName').AsString];
  dt2.ADOQuery1.Next;
end;
Chart1.Series[DT2.ADOQuery15.RecNo].AddXY(i,j,'',clred);
DT2.ADOQuery15.Next;
Chart1.Repaint;
end;
так тоже

Последний раз редактировалось Ernest027; 19.04.2017 в 14:08.
Ernest027 вне форума Ответить с цитированием
Старый 19.04.2017, 14:16   #4
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,515
По умолчанию

Цитата:
такая же ошибка
и та же рекомендация.
список (а если быть точнее то Collection) заполняется путем добавления (Add).
и только потом уже к нему можно [].
программа — запись алгоритма на языке понятном транслятору
evg_m на форуме Ответить с цитированием
Старый 19.04.2017, 14:45   #5
Ernest027
Форумчанин
 
Регистрация: 27.04.2015
Сообщений: 437
По умолчанию

Код:
i:=dt2.ADOQuery1.FieldByName('Frequency').AsFloat;
j:=dt2.ADOQuery1.FieldByName(DT2.ADOQuery15.FieldByName('PointName').AsString).AsFloat;
series:=TFastLineSeries.Create(DBChart2);
DBChart2.AddSeries(series);
DBChart2.Series[dt2.ADOQuery15.RecNo].DataSource:=DT2.DataSource1;
series.XValues.ValueSource:=FloatToStr(i);
series.YValues.ValueSource:=FloatToStr(j);
тоже самое(((
Ernest027 вне форума Ответить с цитированием
Старый 19.04.2017, 14:50   #6
Ernest027
Форумчанин
 
Регистрация: 27.04.2015
Сообщений: 437
По умолчанию

Код:
i:=dt2.ADOQuery1.FieldByName('Frequency').AsFloat;
j:=dt2.ADOQuery1.FieldByName(DT2.ADOQuery15.FieldByName('PointName').AsString).AsFloat;
while not DT2.ADOQuery15.Eof do
begin
series:=TFastLineSeries.Create(DBChart2);
DBChart2.AddSeries(series);
DT2.ADOQuery15.Next;
end;
DBChart2.Series[dt2.ADOQuery15.RecNo].DataSource:=DT2.DataSource1;
series.XValues.ValueSource:=FloatToStr(i);
series.YValues.ValueSource:=FloatToStr(j);
серии создаются, а самих графиков нет. Как будто источник данных не указал
Ernest027 вне форума Ответить с цитированием
Старый 19.04.2017, 15:17   #7
Ernest027
Форумчанин
 
Регистрация: 27.04.2015
Сообщений: 437
По умолчанию

Код:
while not DT2.ADOQuery15.Eof do
begin
series:=TFastLineSeries.Create(DBChart2);
DBChart2.AddSeries(series);

i:=dt2.ADOQuery1.FieldByName('Frequency').AsFloat;
j:=dt2.ADOQuery1.FieldByName(DT2.ADOQuery15.FieldByName('PointName').AsString).AsFloat;
series.XValues.ValueSource:=FloatToStr(i);
series.YValues.ValueSource:=FloatToStr(j);
DT2.ADOQuery15.Next;
end;

DBChart2.Repaint;
серии создаются , но они пустые. Что не так?
Ernest027 вне форума Ответить с цитированием
Старый 19.04.2017, 15:44   #8
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Цитата:
series.XValues.ValueSource:=FloatTo Str(i);
ValueSource имя поля по идее. Откуда там FloatToStr?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 19.04.2017, 15:47   #9
Ernest027
Форумчанин
 
Регистрация: 27.04.2015
Сообщений: 437
По умолчанию

Код:
while not DT2.ADOQuery15.Eof do
begin
series:=TFastLineSeries.Create(DBChart2);
DBChart2.AddSeries(series);
series.DataSource:=dt2.DataSource1;
series.xValues.ValueSource:='Frequency';
series.yValues.ValueSource:=DT2.ADOQuery15.FieldByName('PointName').AsString;
DT2.ADOQuery15.Next;
end;

DBChart2.Repaint;
выводит по оси Х имя столбца (frequence), а не значения столбца Frequency.
Ernest027 вне форума Ответить с цитированием
Старый 19.04.2017, 16:05   #10
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

А сериям же какие-то настройки нужно задать. Или умолчания подходят? Попробуй один график получить
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Класс Series Никита757 Помощь студентам 2 13.11.2015 21:28
Series asiks1 C++ Builder 4 04.03.2013 01:10
Series-последовательности. L01 Помощь студентам 8 14.04.2012 20:30
Несколько графиков в DBCHART со смещением mikoni Компоненты Delphi 0 21.05.2010 13:17