Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Делфи _ Вопрос по TChart

Автор: klem4 11.09.2007 22:02

Как сделать чарт "прокручиваемым", то есть чтобы в текущий момент времени отображались скажем только последние 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 11.09.2007 23:30

Частный случай решения:

  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 12.09.2007 0:19

Отличная идея, спасибо !