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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.04.2010, 13:40   #1
rmise
Пользователь
 
Регистрация: 07.04.2010
Сообщений: 11
По умолчанию Динамический график

Добрый день форумчане! Пишу диплом, застрял на одном вопросе:
Примерно каждые 2 секунды программа опрашивает датчик, ответ в форме: (время, значение). При открытии формы программа должна нарисовать график значений (например за последний час). Когда приходят новые данные нужно чуть дорисовать график, а самое первое значение (которое было час назад) удалить из графика.
Для примера можно посмотреть "Хронологию загрузки ЦП" в диспетчере задач.
Мое идеи (не очень удачные):
1. Реализовать с помощью PChar, но перерисовывать каждые 2 секунды график будет трудоемко для машины.
2. Думал рисовать Canvas-ом на каком-нибудь компоненте: нарисовать основной график, при добавленеии увеличть ширину компонента, дорисовать, уменьщить ширину компонента, поправить left и top. Проблема в том что я не знаю как сделать, чтобы ширина отсчитывалась с правого края.


Может у кого есть идеи получше? Или может компоненты специальные есть?

Последний раз редактировалось rmise; 07.04.2010 в 13:45.
rmise вне форума Ответить с цитированием
Старый 07.04.2010, 13:48   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Обсуждалось уже.
Чтоб график двигался нужно:
Код:
 Chart1.BottomAxis.AutomaticMinimum:=false;
 Chart1.BottomAxis.Minimum:=Chart1.BottomAxis.Minimum+1;
Понятен смысл?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 07.04.2010, 14:29   #3
rmise
Пользователь
 
Регистрация: 07.04.2010
Сообщений: 11
По умолчанию

Спосибо большое, вроде получилось!!!
rmise вне форума Ответить с цитированием
Старый 07.04.2010, 16:58   #4
rmise
Пользователь
 
Регистрация: 07.04.2010
Сообщений: 11
По умолчанию

только не совсем
написал так:

Series1.XValues.DateTime := true;
Chart1.BottomAxis.Automatic := false;
Chart1.BottomAxis.Maximum := Time;
Chart1.BottomAxis.Minimum := StrToTime('18:50');

for i:=1 to 50 do begin
T := IncSecond(ggg,i);
Series1.AddXY(T, i);
end;

график не выводит,
а если убрать
Chart1.BottomAxis.Automatic := false;
Chart1.BottomAxis.Maximum := Time;
Chart1.BottomAxis.Minimum := StrToTime('18:50');
то все работает
почему мой код не работает?
rmise вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
динамический юзербар TaTT DoGG PHP 6 07.01.2010 00:18
Динамический массив Ueshua Общие вопросы C/C++ 3 19.12.2009 22:12
Динамический список ... doseras JavaScript, Ajax 0 08.12.2009 17:06
Динамический массив Kiragaz Общие вопросы C/C++ 8 29.09.2009 22:30
Динамический массив Ivin Мультимедиа в Delphi 14 27.02.2009 23:22