![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Есть массив указателей на чарты, при изменении позиции (или масштаба) одного графика, должна соответственно изменяться позиция (или масштаб) всех остальных.
Как быть в такой ситуации? Небольшой опыт подсказывает, что работать нужно с методами: Код:
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; |