Замена цветового оформления рядов

Ниже представлен пример замены цветового оформления для всех рядов диаграммы. Для этого будет использована возможность сохранения и загрузки стиля в файл.

Необходимо создать форму, на которой разместить UiChart, ChartBox, и два Button.

Далее в инспекторе объектов для UiChart следует задать:

Затем следует описать событие «OnGetDataValue», которое используется для построения графика. Для этого необходимо перейти на закладку «События» и произвести двойной щелчок для «OnGetDataValue». Для созданного события следует написать код:

Sub UiChart1OnGetDataValue(Sender: Object; Args: IUiChartGetDataValueEventArgs);

Begin

Args.Result := True;

Args.Value := Args.PointIndex + Args.SerieIndex + 1;

End Sub UiChart1OnGetDataValue;

Для компонента Button (Сохранить стиль) необходимо задать событие OnClick:

Sub Button1OnClick(Sender: Object; Args: IMouseEventArgs);

Var

doc: IXmlDomDocument;

element: IXmlDomElement;

str : string = "<?xml version=""1.0"" encoding=""utf-8""?>" + #13 + #10 + "<test/>";

Begin

doc := New DOMDocument40.Create;

doc.loadXML( str );

element := doc.documentElement;

UiChart1.Chart.SaveDecoration(element);

doc.save("c:\Temp\xml\Decor.xml");

End Sub Button1OnClick;

Для компонента Button (Загрузить стиль) необходимо задать событие OnClick:

Sub Button2OnClick(Sender: Object; Args: IMouseEventArgs);

Var

doc: IXmlDomDocument;

element: IXmlDomElement;

i: Integer;

Begin

i:= UIChart1.SerieCount;

UIChart1.SerieCount := 0; // перед загрузкой оформления диаграмма должна быть без данных (0 рядов)

UIChart1.Chart.Series.FixedCount := 0; // количество рядов, для которых сохраняем оформление

UiChart1.Chart.ResetDataCache;

doc := New DOMDocument40.Create;

doc.load("c:\Temp\xml\Decor1.xml");

element := doc.documentElement;

UiChart1.Chart.LoadDecoration(element);

UiChart1.Chart.Refresh;

UIChart1.SerieCount := i; //возвращаем первоначальное количество рядов

End Sub Button2OnClick;

После запуска программы форма будет выглядеть следующим образом:

Далее необходимо сохранить стиль в файл. Для этого нажимаем кнопку «Сохранить стиль». В полученном файле, который будет располагаться "c:\Temp\xml\Decor1.xml", в узле DefaultSerieDecoration следует поменять значения для ColorHuge0ColorHuge8.

Значения, которые были сохранены в файл:

<DefaultSerieDecoration>

      <SeriePaletteCount type="fixed value">8</SeriePaletteCount>

      <ColorHuge0>0.592000</ColorHuge0>

      <ColorHuge1>1.000000</ColorHuge1>

      <ColorHuge2>0.219000</ColorHuge2>

      <ColorHuge3>0.737000</ColorHuge3>

      <ColorHuge4>0.533000</ColorHuge4>

      <ColorHuge5>0.075000</ColorHuge5>

      <ColorHuge6>0.836000</ColorHuge6>

      <ColorHuge7>0.152000</ColorHuge7>

Новые значения:

<DefaultSerieDecoration>

     <SeriePaletteCount type="fixed value">8</SeriePaletteCount>

     <ColorHuge0>0.9</ColorHuge0>

     <ColorHuge1>0.8</ColorHuge1>

     <ColorHuge2>0.7</ColorHuge2>

     <ColorHuge3>0.6</ColorHuge3>

     <ColorHuge4>0.5</ColorHuge4>

     <ColorHuge5>0.4</ColorHuge5>

     <ColorHuge6>0.3</ColorHuge6>

     <ColorHuge7>0.2</ColorHuge7>

После задания новых значений необходимо сохранить файл. Далее следует вернуться к форме и нажать на кнопку «Загрузить стиль», после чего заливка всех рядов диаграммы будет изменена:

См. также:

IChart.SaveDecoration|Примеры