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

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

Chart - установить min, max оси Y


Ольга ©   (2004-12-21 17:57:00) 

Люди, погите понять, почему меня Delphi не понимает.
Строю график. Ось X задана в дизайнере (от 0 до 25 - часы суток). В программе задаю только значения по Y. Хочу выставить min - чуть меньше минимального значения одной из серий (max - аналогично). Не получается, пишет, что "min должен быть <= max".

   Chart1.Series[0].Clear;
   Chart1.Series[1].Clear;
       
   for i:=1 to 24 do
   begin
      Chart1.Series[0].AddY(SelRec^.rdgint[i],'',Chart1.Series[0].SeriesColor);
      Chart1.Series[1].AddY(SelRec^.tg[i],'',Chart1.Series[1].SeriesColor);
   end;

   Chart1.LeftAxis.Automatic:= False ;
   Chart1.LeftAxis.Minimum:=Chart1.Series[0].MinYValue-100;
   Chart1.LeftAxis.Maximum:=Chart1.Series[0].MaxYValue+100;


Ольга   (2004-12-22 17:32:00) [1]

В этом варианте все работает, как надо.
Большое спасибо.


olookin   (2004-12-21 18:38:00) [2]

Тогда так попробуйте:

Chart1.Series[0].Clear;
Chart1.Series[1].Clear;

 for i:=1 to 24 do
 begin
    Chart1.Series[0].AddY(SelRec^.rdgint[i],'',Chart1.Series[0].SeriesColor);
    Chart1.Series[1].AddY(SelRec^.tg[i],'',Chart1.Series[1].SeriesColor);
 end;

 Chart1.LeftAxis.SetMinMax(Chart1.Series[0].MinYValue-100,Chart1.Series[0].MaxYValue+100);


Ольга   (2004-12-21 18:27:00) [3]

Ошибка на этой строке:

Chart1.LeftAxis.Minimum:=Chart1.Series[0].MinYValue-100;


olookin   (2004-12-21 18:23:00) [4]

А ошибка выдается где?

Тут

Chart1.LeftAxis.Minimum:=0;
Chart1.LeftAxis.Maximum:=0;
Chart1.LeftAxis.Automatic:= True;

или тут

Chart1.LeftAxis.Minimum:=Chart1.Series[0].MinYValue-100;
Chart1.LeftAxis.Maximum:=Chart1.Series[0].MaxYValue+100;
Chart1.LeftAxis.Automatic:= False ;

?


Ольга   (2004-12-21 18:20:00) [5]

Спасибо, стало уже лучше - ось перестраивается. Но при смене объекта (построении нового графика) выдается таже ошибка.

  Chart1.Series[0].Clear;
  Chart1.Series[1].Clear;

  Chart1.LeftAxis.Minimum:=0;
  Chart1.LeftAxis.Maximum:=0;
  Chart1.LeftAxis.Automatic:= True;
     
  for i:=1 to 24 do
  begin
     Chart1.Series[0].AddY(SelRec^.rdgint[i],'',Chart1.Series[0].SeriesColor);
     Chart1.Series[1].AddY(SelRec^.tg[i],'',Chart1.Series[1].SeriesColor);
  end;

   Chart1.LeftAxis.Minimum:=Chart1.Series[0].MinYValue-100;
   Chart1.LeftAxis.Maximum:=Chart1.Series[0].MaxYValue+100;
   Chart1.LeftAxis.Automatic:= False ;

Где ошибка? (в ДНК?)


Ольга   (2004-12-21 18:19:00) [6]

Спасибо, стало уже лучше - ось перестраивается. Но при смене объекта (построении нового графика) выдается таже ошибка.

  Chart1.Series[0].Clear;
  Chart1.Series[1].Clear;

  Chart1.LeftAxis.Minimum:=0;
  Chart1.LeftAxis.Maximum:=0;
  Chart1.LeftAxis.Automatic:= True;
     
  for i:=1 to 24 do
  begin
     Chart1.Series[0].AddY(SelRec^.rdgint[i],'',Chart1.Series[0].SeriesColor);
     Chart1.Series[1].AddY(SelRec^.tg[i],'',Chart1.Series[1].SeriesColor);
  end;

   Chart1.LeftAxis.Minimum:=Chart1.Series[0].MinYValue-100;
   Chart1.LeftAxis.Maximum:=Chart1.Series[0].MaxYValue+100;
   Chart1.LeftAxis.Automatic:= False ;

Где ошибка? (в ДНК?)


olookin   (2004-12-21 18:09:00) [7]

[1] MBo ©   (21.12.04 18:02)

На самом деле это не поможет, как и [2]. Как я себе представляю, при смене Automatic на true, и максимум, и минимум оба равны 0. Если максимальное значение отрицательное, то не сработает [1], а если минимальное отрицательное - то [2]. Думаю, что проблема решается, если сделать так:

Chart1.LeftAxis.Minimum:=Chart1.Series[0].MinYValue-100;
Chart1.LeftAxis.Maximum:=Chart1.Series[0].MaxYValue+100;
Chart1.LeftAxis.Automatic:= False ;


olookin   (2004-12-21 18:04:00) [8]

Может быть так:

Chart1.LeftAxis.Automatic:= False ;
Chart1.LeftAxis.Maximum:=Chart1.Series[0].MinYValue-100;
Chart1.LeftAxis.Minimum:=Chart1.Series[0].MinYValue-100;
Chart1.LeftAxis.Maximum:=Chart1.Series[0].MaxYValue+100;


MBo   (2004-12-21 18:02:00) [9]

попробуй переставить две последние строчки


Наверх

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