|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
TChart! Как масштабировать и сдвигать одновременно несколько графиков?
Есть массив указателей на чарты, при изменении позиции (или масштаба) одного графика, должна соответственно изменяться позиция (или масштаб) всех остальных.
Как быть в такой ситуации? Небольшой опыт подсказывает, что работать нужно с методами: Код:
procedure TFrame1.Chart1Scroll(Sender: TObject); procedure TFrame1.Chart1Zoom(Sender: TObject); procedure TFrame1.Chart1UndoZoom(Sender: TObject); Но, что писать в описании, так и не понял |
#2
|
|||
|
|||
Забыл дополнить:
- массив ChartArr:TList; - к методам обращаюсь так: Код:
TChart(ChartArr.Items[n]). <метод> ; |
#3
|
|||
|
|||
Подскажите хотябы где у Chart'ов храняться данные, на сколько он увеличен и на чколько он сдвинут от исходной точки.
Очень нужно! Спасибо. |
#4
|
|||
|
|||
Все нашел сам!
Зум или смещение: Код:
procedure TFrame1.Chart1Scroll(Sender: TObject); var i:integer; begin Chart1.BottomAxis.Automatic:=false; for i:=0 to ChartArr.Count-1 do begin { [x] } TCHart(ChartArr.Items[i]).BottomAxis.Automatic:=false; TCHart(ChartArr.Items[i]).BottomAxis.Minimum:=Chart1.BottomAxis.Minimum; TCHart(ChartArr.Items[i]).BottomAxis.Maximum:=Chart1.BottomAxis.Maximum; { [y] } TCHart(ChartArr.Items[i]).LeftAxis.Automatic:=false; TCHart(ChartArr.Items[i]).LeftAxis.Minimum:=Chart1.LeftAxis.Minimum; TCHart(ChartArr.Items[i]).LeftAxis.Maximum:=Chart1.LeftAxis.Maximum; end; end; Вернуть все в исходное положение: Код:
procedure TFrame1.UndoZoom(Sender: TObject); var i:integer; begin Chart1.BottomAxis.Automatic:=true; Chart1.LeftAxis.Automatic:=true; for i:=0 to ChartArr.Count-1 do begin TChart(ChartArr.Items[i]).BottomAxis.Automatic:=true; TChart(ChartArr.Items[i]).LeftAxis.Automatic:=true; end; end; |