Методы вставки новой точки

В классе TChartSeries реализовано несколько методов вставки в график новой точки. Добавление новой точки в конец набора обеспечивают методы:

 

functionAdd(constAValue : Double; constALabel : string; AColor : TColor) : Longint;

functionAddY(constAYValue : Double; constAXLabel : string; AColor : TColor) : Longint;

Здесь AValue – значение координаты Y точки, ALabel – необязательный пояснительный текст метки и AColor – цвет точки. Функции возвратят индекс точки в наборе.

WithSeries1 do

Begin

Add( 40, 'Точка 1', clRed ) ;

Add( 60, 'Точка 2', clBlue ) ;

Add( 30, 'Точка 3', clGreen ) ;

end;

 

Если необходимо внести новую точку, описываемую не одной, как в случае Add() и AddY(), а двумя координатами X и Y, то используйте метод:

 

functionAddXY(constAXValue, AYValue : Double; constAXLabel : string; AColor : TColor) : Longint;

 

В этом методе появился дополнительный параметр AXValue – значение по оси X.

 

AddXY( 10, 20,' ',clTeeColor);

 

Для вставки в график разрыва (пустой точки) используйте метод:

 

functionAddNull(constALabel : string) : Longint;

 

Максимальное количество точек графика ограничивается числом 134 217 727. Помимо вставки значений с помощью методов AddXXX, график в состоянии воспринимать данные из другого графика, набора данных (TTable, TQeury,TStoredProc и т. д.), элементов ActiveX, COM-объектов. Источник данных указывается в свойстве:

 

propertyDataSource : TComponent;

 

Например:

Series1.DataSource:=Table1; //компонент VCL – таблица

Series1.YValues.ValueSource:='ValueField'; //имя поля, содержащего значения

Series1.XLabelsSource:='LabelField'; //имя поля, содержащего описание меток

 

Еще один способ получения данных из другого графика обеспечивается методом:

 

procedureAssignValues(Source : TChartSeries);

 

И наконец, для заполнения графика псевдослучайными значениями используйте метод:

 

procedureFillSampleValues(NumValues : Longint);

 

В параметр передается количество генерируемых точек. Операция вставки нового значения в график сопровождается вызовом двух событий:

 

propertyOnBeforeAdd : TSeriesOnBeforeAdd;

TSeriesOnBeforeAdd = function(Sender: TChartSeries): Boolean of object; и

 

propertyOnAfterAdd : TSeriesOnAfterAdd;

TSeriesOnAfterAdd = procedure(Sender:TChartSeries; ValueIndex:Longint) of object;

 

Первое из перечисленных событий возникает до момента вставки, второе – сразу после него. Каждой точке графика соответствует метка, способная хранить поясняющий текст. Для того чтобы обратиться к метке, воспользуйтесь свойством XLabel. Единственный параметр Index указывает порядковый номер метки в списке.

 

propertyXLabel[Index:Longint] : string;

 

В качестве источника меток может выступать не только программный код, но и набор данных, предоставляемый таблицей (TTable) или запросом (TQuery, TStoredProc). Для этого укажите источник данных в свойстве:

 

propertyXLabelsSource : string;

 

Если в качестве источника данных для компонента выступает запрос или таблица, то стоит познакомиться со свойством:

 

propertyValueSource : string;

 

В свойстве определяется имя поля, из которого график получает набор значений:

 

LineSeries1.DataSource := Table1;

LineSeries1.YValues.ValueSource := 'ValueField';

 

Второй вариант применения данного свойства относится к случаю получения значений из другого графика:

 

LineSeries1.DataSource:=BubbleSerie2;

LineSeries1.YValues.ValueSource:='Y';

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

 

procedureRefreshSeries;

 

Процедура обновляет все принадлежащие диаграмме графики.

 

 








Дата добавления: 2016-03-15; просмотров: 592;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.008 сек.