Форум: "Основная";
Текущий архив: 2007.05.06;
Скачать: [xml.tar.bz2];
ВнизTChart Найти похожие ветки
← →
oleg__ (2007-03-13 15:38) [0]Добрый день!
Снова вопрос по TChart.
Есть график TLineSeries, скролируется только по оси Х. По оси Y имеет пределы 0-50, при этом имеются линии, выходящие за эти пределы (y=-10, y = 100, etc). Необходимо при скролировании по оси Х автоматически менять минимум/максимум оси Y, (например, выставить -10..100). Как узнать минимальное/максимальное значение Y ОТОБРАЖАЕМОГО в данный момент участка графика?
← →
Kolan © (2007-03-13 16:08) [1]> Необходимо при скролировании по оси Х автоматически менять
> минимум/максимум оси 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. Тогда требуемая функциональность будет обеспечена самим чартом.
ЗЫ
Я бы выбрал второе....
← →
oleg__ (2007-03-13 16:24) [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:29) [3]> YMin:=999999;
> YMax:=-999999;
Угу, е если 1000000
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2007.05.06;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.043 c