Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Компоненты и классы
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 02.09.2008, 20:36
ProperDoze ProperDoze вне форума
Новичок
 
Регистрация: 04.08.2008
Сообщения: 53
Репутация: 10
Восклицание TChart! Как масштабировать и сдвигать одновременно несколько графиков?

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

Как быть в такой ситуации?


Небольшой опыт подсказывает, что работать нужно с методами:
Код:
procedure TFrame1.Chart1Scroll(Sender: TObject);
procedure TFrame1.Chart1Zoom(Sender: TObject);
procedure TFrame1.Chart1UndoZoom(Sender: TObject);

Но, что писать в описании, так и не понял
Ответить с цитированием
  #2  
Старый 02.09.2008, 20:40
ProperDoze ProperDoze вне форума
Новичок
 
Регистрация: 04.08.2008
Сообщения: 53
Репутация: 10
По умолчанию

Забыл дополнить:

- массив ChartArr:TList;
- к методам обращаюсь так:
Код:
 TChart(ChartArr.Items[n]). <метод> ; 
Ответить с цитированием
  #3  
Старый 07.09.2008, 21:50
ProperDoze ProperDoze вне форума
Новичок
 
Регистрация: 04.08.2008
Сообщения: 53
Репутация: 10
По умолчанию

Подскажите хотябы где у Chart'ов храняться данные, на сколько он увеличен и на чколько он сдвинут от исходной точки.

Очень нужно! Спасибо.
Ответить с цитированием
  #4  
Старый 11.09.2008, 16:11
ProperDoze ProperDoze вне форума
Новичок
 
Регистрация: 04.08.2008
Сообщения: 53
Репутация: 10
Лампочка

Все нашел сам!

Зум или смещение:
Код:
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;
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 00:53.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter