Помощь - Поиск - Пользователи - Календарь
Полная версия: Вопрос по TChart
Форум «Всё о Паскале» > Современный Паскаль и другие языки > Делфи
klem4
Как сделать чарт "прокручиваемым", то есть чтобы в текущий момент времени отображались скажем только последние 5 значений ?

Я раньше делал так:

procedure TForm1.Timer1Timer(Sender: TObject);
begin
inc(t);
Chart1.Series[0].AddXY(t, random(100));
if t > 5 then
Chart1.Series[0].Delete(0);
end;


но сейчас этот вариант не годится, так как необходимо иметь возможность прокрутки чарта после окончания работы программы, а delete ведь все стирает =(((

Такой вот вариант тоже не катит


//...
chart1.MaxPointsPerPage := 5;
// ...
procedure TForm1.Timer1Timer(Sender: TObject);
begin
inc(t);
Chart1.Series[0].AddXY(t, random(100));
if t > 5 then chart1.NextPage;
end;


Я так думаю какое-нибудь свойство надо поменять типа autoscroll ... вот только какое ?)
volvo
Частный случай решения:

  inc(t);
Chart1.Series[0].AddXY(t, random(100));

if t > 5 then begin
Chart1.BottomAxis.Maximum := t;
Chart1.BottomAxis.Minimum := t - 5;
end;


при необходимости прокрутки - уменьшай Maximum и Minimum... Не забудь, что надо (например, при создании формы):

  Chart1.BottomAxis.Automatic := false;
klem4
Отличная идея, спасибо !
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.