Редактирование Chart (и его серий) из скрипта
Цель: в FastReport сделать Chart и в нем серию (Series), где будет определенное кол-во Marks.
Судя по всему, по умолчанию, можно либо все Marks включить, либо все выключить.
Marks - это такие подписи к точкам серии (1, 2, 3 на рисунке)
Мне нужно что бы отображалась лишь часть из них.
Я нашел способ скрывать Marks унося их за пределы Chart
В Дельфи это делается так:
В FastReport к Chart можно обращаться как Chart3.Chart.Series[0].Marks.Positions но у меня этот код выдает ошибку доступа к памяти.
Это странно.
Если, например, в ФР написать что-то типа
Chart3.Chart.Title.Color := clRed;
то такой код будет работать (заголовок графика будет на красном фоне)
Возможно к свойствам серии чарта в ФР надо обращаться как-то по особому? Мне нужно именно менять определенные свойства серии, а не менять набор данных (SeriesData тут не актуальна).
Когда я обращаюсь к свойствам серии, вылезает AcessViolation и остановка происходит на строчке этого кода:
Иногда можно вставить Chart из Delphi, но в данном случае мне необходимо работать именно с Chart в ФР.
FastReport у меня версии 4.2.22.
Судя по всему, по умолчанию, можно либо все Marks включить, либо все выключить.
Marks - это такие подписи к точкам серии (1, 2, 3 на рисунке)
Мне нужно что бы отображалась лишь часть из них.
Я нашел способ скрывать Marks унося их за пределы Chart
В Дельфи это делается так:
with Chart3.Series[0].Marks.Positions do // Chart3 - объект типа Chart в котором одна серия
begin // работаем с Marks №2 (нумерация начинается с 0)
Position[1].Custom := True; // необходимо что бы свойства Marks можно было менять
Position[1].LeftTop := Point(10000, 0); // убираем Marks за пределы Chart
Position[1].ArrowFrom := Position[1].ArrowTo; // убираем линию под Marks (линия, на которой "стоит" прямоугольник с текстом)
end;
Это работает. Вторая Marks исчезает с графика.В FastReport к Chart можно обращаться как Chart3.Chart.Series[0].Marks.Positions но у меня этот код выдает ошибку доступа к памяти.
Это странно.
Если, например, в ФР написать что-то типа
Chart3.Chart.Title.Color := clRed;
то такой код будет работать (заголовок графика будет на красном фоне)
Возможно к свойствам серии чарта в ФР надо обращаться как-то по особому? Мне нужно именно менять определенные свойства серии, а не менять набор данных (SeriesData тут не актуальна).
Когда я обращаюсь к свойствам серии, вылезает AcessViolation и остановка происходит на строчке этого кода:
if ClassType = TfrxChartView then
begin
if PropName = 'CHART' then
Result := Integer(TfrxChartView(Instance).Chart) // <- тут возникает ошибка
...
Помогите, пожалуйста. Возможно я что-то делаю не так? Возможно есть более простые способы решить эту проблему?Иногда можно вставить Chart из Delphi, но в данном случае мне необходимо работать именно с Chart в ФР.
FastReport у меня версии 4.2.22.