Методы вставки новой точки
В классе 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;