МегаПредмет

ПОЗНАВАТЕЛЬНОЕ

Сила воли ведет к действию, а позитивные действия формируют позитивное отношение


Как определить диапазон голоса - ваш вокал


Игровые автоматы с быстрым выводом


Как цель узнает о ваших желаниях прежде, чем вы начнете действовать. Как компании прогнозируют привычки и манипулируют ими


Целительная привычка


Как самому избавиться от обидчивости


Противоречивые взгляды на качества, присущие мужчинам


Тренинг уверенности в себе


Вкуснейший "Салат из свеклы с чесноком"


Натюрморт и его изобразительные возможности


Применение, как принимать мумие? Мумие для волос, лица, при переломах, при кровотечении и т.д.


Как научиться брать на себя ответственность


Зачем нужны границы в отношениях с детьми?


Световозвращающие элементы на детской одежде


Как победить свой возраст? Восемь уникальных способов, которые помогут достичь долголетия


Как слышать голос Бога


Классификация ожирения по ИМТ (ВОЗ)


Глава 3. Завет мужчины с женщиной


Оси и плоскости тела человека


Оси и плоскости тела человека - Тело человека состоит из определенных топографических частей и участков, в которых расположены органы, мышцы, сосуды, нервы и т.д.


Отёска стен и прирубка косяков Отёска стен и прирубка косяков - Когда на доме не достаёт окон и дверей, красивое высокое крыльцо ещё только в воображении, приходится подниматься с улицы в дом по трапу.


Дифференциальные уравнения второго порядка (модель рынка с прогнозируемыми ценами) Дифференциальные уравнения второго порядка (модель рынка с прогнозируемыми ценами) - В простых моделях рынка спрос и предложение обычно полагают зависящими только от текущей цены на товар.

Точки графика – класс TChartValueList





График TChartSeries – это сердце диаграммы. Визуально он может быть представлен в виде обычной линии, заштрихованной области, пирамиды, цилиндра или чего-либо еще. Линия графика строится по его точкам. Для хранения точек в рамках класса создано специальное хранилище – список точек:

 

propertyValueList[Index : Longint] : TChartValueList;

 

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

 

propertyXValues : TChartValueList; //значения по оси X

propertyYValues : TChartValueList; //значения по оси Y

 

Они обеспечивают раздельный доступ к коллекции значений по осям X и Y графика. Например, чтобы добраться до интересующей нас точки с целью редактирования ее содержимого, воспользуйтесь свойством:

 

propertyValue[Index : Longint] : Double;

Например:

LineSeries1.YValues.Value[5] := 25 ;

LineSeries1.Repaint;

 

Более удобный способ, позволяющий адресовать точку графика без явного обращения к хранилищу TChartValueList, реализован тремя свойствами:

propertyXValue[Index : Longint] : Double; //значение по оси X

propertyYValue[Index : Longint] : Double; //значение по оси Y

propertyXLabel[Index : Longint] : String; //метка – пояснительная подпись к

точке

 

Здесь Index – порядковый номер точки. Общее количество элементов в хранилище возвратит функция:

 

functionCount : Longint;

 

Существует ряд свойств и методов графика, несущих исключительно информационную нагрузку (табл. 18.1).

 

Таблица 18.1. Информационные свойства графика

Свойство Описание
propertyTotal : Double Сумма всех значений графика.
propertyTotalABS : Double Сумма абсолютных значений.
propertyMaxValue : Double Максимальное значение в наборе.
propertyMinValue : Double Минимальное значение в наборе.
functionFirst : Double Значение первой точки графика.
functionLast : Double Значение последней точки графика

Для облегчения поиска точки по ее значению создана функция:

 

functionLocate (constValue : Double) : Longint;

 

В случае успеха метод возвратит индекс найденной точки в наборе. Если такой точки не существует, то функция вернет –1.

Познакомившись с организацией хранения данных, перейдем к изучению способов заполнения графика значениями.

 

 

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

В классе 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;

 

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

 

 





©2015 www.megapredmet.ru Все права принадлежат авторам размещенных материалов.