Модераторы: Snowy, Alexeis, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> TChart график в релаьном времени (как в SCADA) 
:(
    Опции темы
becks
Дата 10.1.2011, 04:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 165
Регистрация: 6.7.2010

Репутация: нет
Всего: нет



Добрый день. Такая проблема. В программе необходимо выводить график по, приходящим с приборам значениям температуры, т.е. как в SCADA-системах сдвигать ось X каждый раз влево при добавлении новой точки. Нашел в демках пример, абсолютно то что мне нужно, сделал тоже у себя, не сдвигает ось. Полагаю, что необходимо выставить, какое то свойство у TCharta. Подскажите как мне решить проблему. 

Второй вопрос, приходящие данные прыгают около значения 1000, как сделать так чтобы, если вновь пришедшее значение <1000, то отрезок от предыдущего до этого значения рисовался зеленым, а если >1000, то оранжевым. Правильно ли понимаю, что надо использовать 2 серии или можно обойтись одной?


Большое спасибо.
PM MAIL   Вверх
Alexeis
Дата 10.1.2011, 10:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 55
Всего: 459



Цитата(becks @  10.1.2011,  05:23 Найти цитируемый пост)
Полагаю, что необходимо выставить, какое то свойство у TCharta

  Начало и конец оси Х. Правда есть подозрение что при большом числе точек оно начнет тормозить на добавлении очередной точки.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
DimaDD
Дата 29.11.2011, 04:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 29.11.2011

Репутация: нет
Всего: нет



Цитата(becks @ 10.1.2011,  04:23)
Второй вопрос, приходящие данные прыгают около значения 1000, как сделать так чтобы, если вновь пришедшее значение <1000, то отрезок от предыдущего до этого значения рисовался зеленым, а если >1000, то оранжевым. Правильно ли понимаю, что надо использовать 2 серии или можно обойтись одной?

Можно обойтись одной серией, например при добавлении значений с помощью вот такой процедуры AddNewValue:

Код

procedure AddNewValue(x,y:double);

 const
  LineColors:array[0..1] of TColor=($0080FF,clGreen);

 begin
  TLineSeries(Chart1.Series[0]).AddXY(x,y,'',LineColors[byte(y<1000)]);
 end;


Предполагается, что серия тут только одна и что она типа TLineSeries, для TFastLineSeries разные цвета у одной серии не определить.

А тормозов при ОЧЕНЬ большом количестве значений можно, в принципе, избежать, ежели по мере сдвига окна (min/max по X) удалять первую точку серии, находящуюся уже на достаточно большом расстоянии от Xmin (и сохранять её в массив, а лучше дописывать в файл, на всякий пожарный). В общем, надо организовать работу с записью-чтением значений при смещениях окна по всему диапазону (в т.ч. при его скроллинге вручную)...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Звук, графика и видео"
Girder
Snowy
Alexeis

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • По вопросам разработки игр стоит заглянуть сюда

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Girder, Snowy.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Звук, графика и видео | Следующая тема »


 




[ Время генерации скрипта: 0.0594 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.