Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.01.13;
Скачать: CL | DM;

Вниз

Как заставить чарт отображать только последний час?   Найти похожие ветки 

 
cvg   (2007-12-11 16:23) [0]

Собственно, сабж. По умолчанию он показывается весь (за сутки), а надо, чтоб только последний час. Как сделать? Наверное, что-нить типа Editing Chart/Chart/Axis ?


 
Сергей М. ©   (2007-12-11 16:24) [1]

Какие еще "сутки" в TChart ?


 
cvg   (2007-12-11 16:30) [2]

Да нет, просто я коряво выразился -- про "сутки"...


 
Сергей М. ©   (2007-12-11 16:36) [3]

Как бы ты ни выразился, никаких "суток" в TChart нет - ни "за" ни "про".

Там есть серии - последовательности пар значений, определяющих точку на соотвуюем серии графике, который визуализирует компонент. Нет точки - нет и соответствующего участка графика.


 
cvg   (2007-12-11 16:39) [4]

Ладно, уговорил, корректирую преамбулу: график просто показывается весь, с начала и до конца, а надо, чтоб только чисто последнийас. Как сделать?


 
Сергей М. ©   (2007-12-11 16:42) [5]


> чисто последний


Чисто конкретно ?

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


 
Kolan ©   (2007-12-11 16:42) [6]

> Ладно, уговорил, корректирую преамбулу: график просто показывается
> весь, с начала и до конца, а надо, чтоб только чисто последнийас.
> Как сделать?

Все стереть и нарисовать 1 число.


 
DiamondShark ©   (2007-12-11 16:43) [7]


> Как сделать?

Русский язык выучить.
А то с таким уровнем владения речью, да ещё с Сергей М. в собеседниках -- хлебнёшь горя.


 
cvg   (2007-12-11 16:50) [8]

То Kolan: То есть, предложение единственное: искать и удалять те точки, которые остоят от текущего времени больше, чем на час?


 
DiamondShark ©   (2007-12-11 16:53) [9]

Почему единственное?
Вот ещё хорошее предложение: не создавать лишних точек. Тогда и удалять не придётся.

Но это всё гадание на кофейной гуще. Потому что только чёрт лысый знает, что там у тебя за точки, откуда берутся, и почему с ними такой конфуз приключился.


 
Сергей М. ©   (2007-12-11 16:56) [10]


> cvg   (11.12.07 16:50) [8]


> искать и удалять


Зачем это делать, если их можно просто не задавать изначально ?
Т.е формировать серию только из тех точек, которые относятся к интересующему тебя диапазону аргументов визуализируемой ф-ции ?


 
Германн ©   (2007-12-11 17:00) [11]

Опять кто-то не может справится с надыбанным где-то примером.


 
Kolan ©   (2007-12-11 17:03) [12]

> То Kolan: То есть, предложение единственное: искать и удалять
> те точки, которые остоят от текущего времени больше, чем
> на час?

Нет, вы забыли в сабже слово за последний.

Хронить точки отдельно, а при необходимости чарт стирать и рисовать на нем нужное(в данном случае за последний час).


 
cvg   (2007-12-11 17:05) [13]

Объясняю: чарт рисует 4 графика с частототй точка в секунду. Примерно через час точек в оперативной памяти набирается столько, что график ворочается уже с трудом. Поэтому есть простой смысл удалять из чарта все, что старше часа. Логично?


 
Kesha   (2007-12-11 17:07) [14]

Label1.Caption:=FormatDateTime("hh, Time);
Отсюда разберись что тебе надо


 
Kesha   (2007-12-11 17:08) [15]


> Label1.Caption:=FormatDateTime("hh, Time);


Label1.Caption:=FormatDateTime("hh", Time);


 
Virgo_Style ©   (2007-12-11 17:09) [16]

Телепатирую: при достижении интервала в один час график стать как бы окном, скользящим по оси абсцисс. Например (вид оси абсцисс):

--10--> (t)
--10--20--> (t)
...
--10--20--30--40--50--> (t)
--10--20--30--40--50--60--> (t)
--20--30--40--50--60--70--> (t)
--30--40--50--60--70--80--> (t)
и так далее.

Сергей М. ©   (11.12.07 16:56) [10]
Т.е формировать серию только из тех точек, которые относятся к интересующему тебя диапазону аргументов визуализируемой ф-ции ?

По всей видимости, график не формируется в каждый момент заново, а просто добавляется новая точка, поэтому изначально формировать "как надо" не получится в принципе. Если только каждый раз выбрасывать все данные и потом "забивать" скорректированные. Что, imho, не очень красиво.

Наверняка Chart"у можно задать "логическую" (т.е. в единицах оси абсцисс) ширину отображаемого "окна", что, собственно, автору и нужно.


 
DiamondShark ©   (2007-12-11 17:09) [17]


> cvg   (11.12.07 17:05) [13]


> Объясняю:

Снизошёл-таки?


> Поэтому есть простой смысл удалять из чарта все, что старше
> часа

И даже больше. Потому что с частототй точка в секунду за час будет 3600 точек, каковое количество даже если и поместится на мониторе, столь детально юзером всё равно разглядываться не будет. у него и от сотни точек заворот мозгов случится.


 
Kolan ©   (2007-12-11 17:10) [18]

> Объясняю: чарт рисует 4 графика

Как время создания будете определять?

Не проше ли отталкиваться от количества точек?

При превышении опро кол-ва перед добавлением новой точки удаляйте первую. Эффект получится как на кардиограмме.


 
Сергей М. ©   (2007-12-11 17:14) [19]


> точка в секунду
> есть простой смысл удалять из чарта все, что старше часа.
>  Логично?


Час = 3600 секунд.

Значит, в серии, визуализирующей данные последнего часа, у тебя должно быть не более 3600 точек.

Всякий раз перед добавлением в серию очередной точки проверяй, не превысит ли при этом серия длину 3600. Если да, то перед добавлением удали самый первый элемент серии.


 
Virgo_Style ©   (2007-12-11 17:17) [20]

cvg   (11.12.07 17:05) [13]
тогда, если проблема не в отображении, а в самом существовании этих точек, то в предыдущем моем сообщении все, что после Сергей М. к данной задаче не относится.


 
cvg   (2007-12-11 17:21) [21]

Честно говоря, иногда нескоторые секунды могут и просткакивать. А определять время их появления можно примерно так:
if compareTime(Chart2.SeriesList[n].XValues[i],_time) < 1

То есть, в настройках ничего подобного тому, что так проницательно телепатировал Virgo_Style, нет?


 
cvg   (2007-12-11 17:23) [22]

Tj Virgo_Style:
Нет, все наоборот было очень складно изложено.


 
Kolan ©   (2007-12-11 17:45) [23]

> столь детально юзером всё равно разглядываться не будет

Не забывай, там можно увеличивать, так что разница есть.


 
cvg   (2007-12-11 17:49) [24]

А если удалять промежуточные точки -- так это еще больше мороки (график-то чай, не квадраты рисует, а загогулины).


 
Kolan ©   (2007-12-11 18:00) [25]

> [24] cvg   (11.12.07 17:49)

Что вам надо, объясните?

Ответ прозвучал в
[18] Kolan ©   (11.12.07 17:10)
и
[19] Сергей М. ©   (11.12.07 17:14)


 
cvg   (2007-12-11 18:06) [26]

ОК



Страницы: 1 вся ветка

Текущий архив: 2008.01.13;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.017 c
2-1197366639
Dennis I. Komarov
2007-12-11 12:50
2008.01.13
ICS


3-1188949392
kalan
2007-09-05 03:43
2008.01.13
Использование Oracle и InterBase в одном приложении


2-1197710104
петрович07
2007-12-15 12:15
2008.01.13
курсор в пределах формы


2-1197643683
Sallity
2007-12-14 17:48
2008.01.13
Задача про машини


3-1188883302
Ulugbek
2007-09-04 09:21
2008.01.13
Как проверить на существование запись ?