Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.12.04;
Скачать: CL | DM;

Вниз

Баг Chart а или что?   Найти похожие ветки 

 
rolex   (2005-11-03 22:54) [0]

Если задать координату Y вылетает Error Access Violation...

Ставлю точки в Charte функцией Series1.AddXY, но если координата Y "большое" число (к примеру у меня 5000) - вылетает ошибка.
К примеру, вот код:

procedure TForm1.Button1Click(Sender: TObject);
begin
Form1.Series1.Clear;
Form1.Series1.AddXY(StrToFloat("1"),StrToFloat("5000"),"",clGreen);
end;


Вылетает ошибка.
Прошу помощи.


 
gdaujk ©   (2005-11-04 05:23) [1]

Что за ошибка-то вылетает?

PS: Я обычно обращаюсь к линиям чарта не через Series, а сл. образом (выш случай):

procedure TForm1.Button1Click(Sender: TObject);
begin
 Chart.Series[НОМЕР_ЛИНИИ].Clear;
 Chart.Series[НОМЕР_ЛИНИИ].AddXY(X, Y, ЦВЕТ);
end;

Может так правилнее...


 
gdaujk ©   (2005-11-04 05:34) [2]

Series1 - это TLineSeries. В справке же по TChart сказано, что AddXY - метод TChartLine, то есть обращаться наверное нужно именно к Chart.Series[НОМЕР_ЛИНИИ], который и является TChartLine.


 
gdaujk ©   (2005-11-04 06:06) [3]

Дело совсем не в разнице TLineSeries и TChartLine. Сделай так:

procedure TForm1.Button1Click(Sender: TObject);
begin
 Series1.Clear;
 Chart.LeftAxis.Increment := ЧИСЛО_БОЛЬШЕ_НУЛЯ;
 Series1.AddXY(StrToFloat("1"),StrToFloat("5000"),"",clGreen);
end;
</COD E>

Chart - твой чарт, ЧИСЛО_БОЛЬШЕ_НУЛЯ - число больше нуля :-), я брал 0,2, и у меня всё выходило. Можно взять и большее число. Изначально оно равно нулю. Можно менять Increment и не  в Run Time, задав его в настройках TChart"а;


 
Kolan ©   (2005-11-04 09:54) [4]

Это глюк чарта. У меня было не раз. Для меня приемлемо было поделить число на 1000...


 
rolex   (2005-11-04 11:03) [5]

Добавил:
Chart.LeftAxis.Increment := 1;
Всё заработало. А что это за свойство Chart.LeftAxis.Increment ? Что оно меняет?


 
gdaujk ©   (2005-11-04 12:49) [6]

Increment - это минимальный шаг между двумя засечками-подписями на оси. Если для размещения подписей через этот шаг места не хватает, TChart вычисляет больший, допустимый шаг. С помощью него можно регулировать величину ячеек сетки.

PS: Я не переводчик, хоть иногда заглядывайте в справку...


 
Tonich ©   (2005-11-04 13:11) [7]

что-то вы гоните, я на чарте откладывал сависимость одного параметра от юлианской дата. И юлианские даты были больше чем на 2 порядка ваших 5000 тысяч и нифига


 
gdaujk ©   (2005-11-04 13:38) [8]

Tonich
Попробуй запустить procedure TForm1.Button1Click в моём варианте, но с Chart.LeftAxis.Increment := 0  и значением по этой оси 5000, и тебе всё станет ясно...

PS: у меня вылетала ошибка уже при 1800...


 
lookin ©   (2005-11-04 18:25) [9]

В пустую серию можно добавить точку 0,0, потом нужную (с любой координатой), потом удалить точку 0,0. Кажется, этот баг я обхожу именно так...


 
rolex   (2005-11-04 21:45) [10]


> lookin ©   (04.11.05 18:25) [9]
> В пустую серию можно добавить точку 0,0, потом нужную (с
> любой координатой), потом удалить точку 0,0. Кажется, этот
> баг я обхожу именно так...

Я это тоже заметил. Но я не понял как удалить точку, может ты знаешь?


 
lookin ©   (2005-11-04 22:34) [11]

Series.Delete(0)



Страницы: 1 вся ветка

Текущий архив: 2005.12.04;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.05 c
2-1131955448
Del_programmer
2005-11-14 11:04
2005.12.04
панель задач


1-1131561034
Shopot
2005-11-09 21:30
2005.12.04
Можно ли создать объект...


14-1131974326
Piter
2005-11-14 16:18
2005.12.04
HEX кодирование


2-1132169264
NightLord
2005-11-16 22:27
2005.12.04
InternetExplorer


14-1132035156
Ega23
2005-11-15 09:12
2005.12.04
С днем рождения! 15 ноября