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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.01.2009, 12:29   #1
Georgios
Пользователь
 
Аватар для Georgios
 
Регистрация: 18.01.2009
Сообщений: 57
Вопрос Проблема с Chart на Delphi 6 (

Приветствую, славные умы!
В общем такая проблема:

Имеется внешнее устройство, которое 150 раз в секунду посылает на комп данные. Необходимо чертить график по ходу приема этих данных.

Данные приходят под типом Integer. Функция (если можно назвать ее так) в Chart'e такая : AddXY(i, buff(i), '', clRed)

Теперь, рисовать он рисует, но сколько бы не былоданных Chart умещает их в свою ширину. А мне надо, чтобы он по ходу прокруичвался, т.к. кол-во данных иногда превышает 70 - 80 тыс. значений.

Заранее спасибо
Georgios вне форума Ответить с цитированием
Старый 19.01.2009, 12:40   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Например так:
Код:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Series1.Addy(random(500));
if Series1.Count>5 then begin
 Chart1.BottomAxis.AutomaticMinimum:=false;
 Chart1.BottomAxis.Minimum:=Chart1.BottomAxis.Minimum+1;
end;
end;
т.е. прокрутка будет начаться после пятого значения.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 19.01.2009, 13:38   #3
Georgios
Пользователь
 
Аватар для Georgios
 
Регистрация: 18.01.2009
Сообщений: 57
Хорошо

Спасибо, что откликнулся

Как я понимаю, Series - это кол-во линий на графике (ну или функций)?
Но у меня один график и после 5-го цикла выпадает ошибка, что якобы Minimal axes must be <= Maximum


P.S. Да, кстати, в данный момент я гружу данные с файла, в который когда-то они были загружены в тех железок. Может это влияет?
Georgios вне форума Ответить с цитированием
Старый 19.01.2009, 13:52   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Series - это кол-во линий на графике (ну или функций)?
Это не количество линий а сам график.
Цитата:
выпадает ошибка
Чтоб график "двигался" нужно дабы Chart1.BottomAxis.Minimum был меньше чем Chart1.BottomAxis.Maximum.
Тут либо проверку ставить нужно либо думать над прогой как она написана и где ты "двигаеш" график
Цитата:
Может это влияет?
Сумлеваюси
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 19.01.2009, 14:10   #5
Georgios
Пользователь
 
Аватар для Georgios
 
Регистрация: 18.01.2009
Сообщений: 57
По умолчанию

Да, ты прав, проверка значения Maximuma и вроде как работает

Огромное спасибо!!!
Georgios вне форума Ответить с цитированием
Старый 19.01.2009, 14:11   #6
NOOB
Пользователь
 
Аватар для NOOB
 
Регистрация: 01.11.2007
Сообщений: 45
По умолчанию

можно что-то типа этого:

X, Y - значения
interval_X - видимый интервал значений для X
interval_Y - видимый интервал значений для Y

Код:
procedure TForm1.Chart1Interval(X, Y : integer; interval_X, interval_Y : integer);
begin
 if abs(Y-Chart1.LeftAxis.Minimum)>interval_Y then
 begin
  if Y>Chart1.LeftAxis.Maximum then
  begin
    Chart1.LeftAxis.Maximum:=Y;
    Chart1.LeftAxis.Minimum:=Y-interval_Y;
  end
  else
  begin
    Chart1.LeftAxis.Minimum:=Y-interval_Y;
    Chart1.LeftAxis.Maximum:=Y;
  end
 end;
 if abs(X-Chart1.BottomAxis.Minimum)>interval_X then
 begin
  if X>Chart1.BottomAxis.Maximum then
  begin
    Chart1.BottomAxis.Maximum:=X;
    Chart1.BottomAxis.Minimum:=X-interval_X;
  end
  else
  begin
    Chart1.BottomAxis.Minimum:=X-interval_X;
    Chart1.BottomAxis.Maximum:=X;
  end
 end;
end;
не забудь задать свойства
Chart1.BottomAxis.Automatic:=false;
Chart1.LeftAxis.Automatic:=false;

Последний раз редактировалось NOOB; 19.01.2009 в 14:15.
NOOB вне форума Ответить с цитированием
Старый 19.01.2009, 14:54   #7
Georgios
Пользователь
 
Аватар для Georgios
 
Регистрация: 18.01.2009
Сообщений: 57
По умолчанию

Кстати, тоже идея )
Попробую и так
Спасибо
Georgios вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Chart StartMis Общие вопросы Delphi 2 19.10.2008 11:33
Компонент Chart. Небесный Общие вопросы Delphi 17 09.02.2008 08:48
Рисование в Chart SunKnight Общие вопросы Delphi 3 07.02.2008 09:16
компонент chart malevich Общие вопросы Delphi 3 04.02.2007 19:53