Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

TChart [D7]


oleg__ ©   (2007-03-13 15:38:00) 

Добрый день!
Снова вопрос по TChart.
Есть график TLineSeries, скролируется только по оси Х. По оси Y имеет пределы 0-50, при этом имеются линии, выходящие за эти пределы (y=-10, y = 100, etc). Необходимо при скролировании по оси Х автоматически менять минимум/максимум оси Y, (например, выставить -10..100). Как узнать минимальное/максимальное значение Y ОТОБРАЖАЕМОГО в данный момент участка графика?


Kolan   (2007-03-13 16:29:00) [1]

> YMin:=999999;
> YMax:=-999999;

Угу, е если 1000000


oleg__   (2007-03-13 16:24:00) [2]

> Kolyan
Я вот уже что накопал, может кому еще поможет

procedure TForm1.GetVisibleYMinMax(var YMin, YMax: double);
var
 i: integer;
begin
 YMin:=999999;
 YMax:=-999999;

 with Chart1, TLineSeries(SeriesList[0]) do
 begin
   for i:=FirstValueIndex to LastValueIndex do
   begin
     if YValue[i] < YMin then
       YMin:=YValue[i];

     if YValue[i] > YMax then
       YMax:=YValue[i];
   end;
 end;
end;


Kolan   (2007-03-13 16:08:00) [3]

> Необходимо при скролировании по оси Х автоматически менять
> минимум/максимум оси Y

Решение было одноразовое. Работает вроде, но не ручаюсь что всегда правильно...


 if FMax+1 < Chart1.LeftAxis.Minimum then
   Chart1.LeftAxis.Minimum := FMax;

 if Chart1.LeftAxis.Maximum <> FMax+1 then
   Chart1.LeftAxis.Maximum := FMax+1;

 if FMin-1 > Chart1.LeftAxis.Maximum then
   Chart1.LeftAxis.Maximum := FMin;
 if Chart1.LeftAxis.Minimum <> FMin-1 then
   Chart1.LeftAxis.Minimum := FMin-1;  
   

Вариант два:
Сделать ось Y automatic. Тогда требуемая функциональность будет обеспечена самим чартом.
ЗЫ
 Я бы выбрал второе....


Наверх

Титульная страница Поиск, карта сайта Написать письмо