Компонент-диаграмма
Компонент-диаграмма Chart предназначена для работы со сложными диаграммами различных типов, в том числе с объемными. Этот компонент является достаточно сложным и имеет большое количество разнообразных свойств, многие из которых являются объектами и также имеют свои свойства. На практике установка значений этих свойств выполняется при разработке приложения с помощью редактора (окно Editing Chart).
Редактор позволяет оперировать со свойствами-объектами, информация о которых отображается на страницах редактора. Редактор вызывается двойным щелчком на компоненте Chart или через поле значения свойства объекта в Инспекторе объектов. В этом случае активной становится страница, соответствующая выбранному свойству.
Для каждой диаграммы можно установить следующие основные параметры:
· тип;
· название;
· оси;
· легенду;
· источник данных.
Важнейшим свойством диаграммы является Series [Index: Longint] типа TChartSeries, представляющее массив диаграмм, выводимых в области компонента Chart.
Разработчик, как минимум, должен указать тип диаграммы и источник данных. Тип диаграммы задается на странице редактора Chart — Series и определяет вид диаграммы. Часто компонент Chart содержит только одну диаграмму. Можно задавать разные типы диаграмм, например, линейный график или круговую диаграмму. Типов много, более десятка. Существуют еще и объемные варианты 3D.
Источник данных выбирается на странице редактора Series - DataSource. В качестве источника данных используются: значения, определяемые выбранной функцией; случайные значения или значения, вводимые программно. Если формирование значений диаграммы осуществляется при выполнении приложения, то для источника данных необходимо выбрать No Data. Для компонентов DBChart и QRChart в качестве источника данных может служить набор данных, например, Table.
Для управления значениями, по которым строится диаграмма, часто используется методы Add, Delete и Clear.
Функция
Add(Const AValue: Double; Const ALable: String; AColor: TColor): Longint
добавляет к диаграмме значение, указанное параметром AValue. Параметры ALable и AColor содержат название значения и цвет, используемый при выводе. В качестве результата функция возвращает номер значения в массиве значений диаграммы.
Процедура Delete(ValueIndex: Longint) удаляет значение с номером, указанным параметром ValueIndex. Для удаления всех значений удобно использовать процедуру Clear.
Метод AddXY позволяет добовлять новую точку в график функции.
Синтаксис:
AddXY(Const AXValue, AYValue: Double; Const Alabel: String; AColor: TColor);
Параметры AXValue и AYValue соответствуют аргументу и функции. Параметры ALable и AColor означают то же, что и в методе Add.
Некоторые свойства компонента Chart:
AllowPanning | Определяет возможность пользователя прокручивать наблюдаемую часть графика во время выполнения |
AllowZoom | Позволяет пользователю изменять во время выполнения масштаб изхображения |
Title | Определяет заголовок диаграммы |
Foot | Определяет подпись под диаграммой. Текст подписи определяет подсвойство Text |
Frame | Определяет рамку вокруг диаграммы |
Legend | Открывает окно Legend |
Margineft, MarginRight, MarginTop MarginBottom | Значения левого, правого, верхнего и нижнего полей |
BottomAxis, LeftAxis, RightAxis | Эти свойства определяют характеристики соответственно нижней, левой и правой осей |
LeftWall, BottomWall BackWall | Эти свойства определяют характеристики соответственно левой, нижней и задней граней областей трехмерного отображения графика |
SeriesList | Список серий данных, отображаемых в компоненте |
View3D | Разрешает или запрещает трехмерное отображение диаграммы |
View3DOption | Характеристики трехмерного отображения |
Chart3DPercent | Масштаб трехмерности |
Пример:
В этом примере данные для построения графика заносятся в компонент Memo. Уже оттуда они преобразуются в числовые значения и методом Add добавляютс на диаграмму.
procedure TForm1.Button1Click(Sender: TObject);
var
n:byte;
begin
Chart1.Series[0].Clear;
for n:=0 to Memo1.Lines.Count-1 do begin
Chart1.Series[0].Add(StrTofloat(Memo1.Lines[n]),IntToStr(n),clGreen);
end;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
Chart1.Series[0].Clear;
Memo1.Lines.Clear;
end;
Пример:
В этом проекте будут заданы две серии для того, чтобы изобразить на графике две кривые. Выбираем тип диаграммы Line. Можно воспользоваться закладками Axis и Walls для задания координатных характеристик осей и трехмерных граней графика.
Для круговой диаграммы задаются некоторые константы, а в графиках — функции синус и косинус.
Метод Clear очищает серию от занесенных ранее данных. Метод Add позволяет добавлять в диаграмму новую точку.
procedure TForm1.Button1Click(Sender: TObject);
const
B1=160;
B2=320;
B3=210;
var i:integer;
begin
with Series1 do
begin
Clear;
Add(B1,'Филиал 1',clRed);
Add(B2,'Филиал 2',clBlue);
Add(B3,'Филиал 3',clYellow);
end;
Series2.Clear;
Series3.Clear;
for i:=0 to 100 do
begin
Series2.AddXY(0.02*Pi*i,sin(0.02*Pi*i),'',clRed);
Series3.AddXY(0.02*Pi*i,cos(0.02*Pi*i),'',clBlue);
end;
end;