![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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]попробуй переставить две последние строчки