![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 07.04.2010
Сообщений: 11
|
![]()
Добрый день форумчане! Пишу диплом, застрял на одном вопросе:
Примерно каждые 2 секунды программа опрашивает датчик, ответ в форме: (время, значение). При открытии формы программа должна нарисовать график значений (например за последний час). Когда приходят новые данные нужно чуть дорисовать график, а самое первое значение (которое было час назад) удалить из графика. Для примера можно посмотреть "Хронологию загрузки ЦП" в диспетчере задач. Мое идеи (не очень удачные): 1. Реализовать с помощью PChar, но перерисовывать каждые 2 секунды график будет трудоемко для машины. 2. Думал рисовать Canvas-ом на каком-нибудь компоненте: нарисовать основной график, при добавленеии увеличть ширину компонента, дорисовать, уменьщить ширину компонента, поправить left и top. Проблема в том что я не знаю как сделать, чтобы ширина отсчитывалась с правого края. Может у кого есть идеи получше? Или может компоненты специальные есть? Последний раз редактировалось rmise; 07.04.2010 в 13:45. |
![]() |
![]() |
![]() |
#2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
Обсуждалось уже.
Чтоб график двигался нужно: Код:
I'm learning to live...
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 07.04.2010
Сообщений: 11
|
![]()
Спосибо большое, вроде получилось!!!
|
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 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'); то все работает почему мой код не работает? |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
динамический юзербар | 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 |