Работа с кмпонентом TChart

 

Для изменения параметров компонента TChart необходимо дважды щелкнуть по нему мышью в окне формы. Появится окно редактирования EditingChart (см. фиг.8.2). Для создания нового объеета Series1 щелкнуть по кнопке Add на странице Siries. В появившимся диалоговом окне TeeChartGalleri выбрать пиктограмму с надписью Line (график выводится в виде линий). Если нет необходимости представления графика в трехмерном виде, отключить независимый переключатель 3D. После нажатия на кнопку ОК появится новая серия с название Seriesl. Для изменения названия нажать кнопку Title.

В появившимся однострочном редакторе набрать имя отображаемой функции "sin(x)". Аналогичным образом создать объект Series2 для функции cos(x).

Для изменения надписи над графиком на странице Titles в многострочном редакторе набрать: “Графики функций".

Для разметки осей выбрать страницу Axis и научиться устанавливать параметры настройки осей. Нажимая различные кнопки меню, познакомиться с другими возможностями EditingChart.

 

Написание программы обработки события создания формы

 

В данном месте программы устанавливаются начальные пределы и шаг разметки координатных осей. Когда свойство Chart1.BottomAxis Automatic имеет значение False, автоматическая установка параметров осей не работает.

 

Написание программ обработки событий нажатия на кнопки

 

Процедура Tform1.Button1Click обрабатывает нажатие кнопки "Установить оси". Процедура Tform1.Bttnon2CIick обрабатывает нажатие кнопки "Построить график". Для добавления координат точек (X, Y) из таблицы значений в двумерный массив объекта Seriesk используется процедура Series1.AddXY(Const AXValue, AYValue: Double; Const AXLabel: String; Acolor: TColor): Longint;, где AXValue, AYValue - координаты точки по осям X и Y; AXLabel может принимать значение ‘’; Acolor задает цвет линий (если равен clTeeColor, то принимается цвет, определенный при проектировании формы).

Текст программы имеет вид:

Unit Unit1;

Interface

Uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, ExtCtrls, TeeProcs, TeEngine, Chart, Series;

 

type

TForm1 = class(TForm)

Chart1: TChart;

Button1: TButton;

Button2: TButton;

Edit1: TEdit;

Edit2: TEdit;

Edit3: TEdit;

Edit4: TEdit;

Edit5: TEdit;

Edit6: TEdit;

Edit7: TEdit;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Label6: TLabel;

Label7: TLabel;

Series1: TLineSeries;

Series2: TLineSeries;

procedure FormCreate(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

 

var

Form1: TForm1;

Xmin, Xmax, Ymin, Ymax, Hx, Hy, h : extended;

 

Implementation

{$R *.DFM}

 

Procedure TForm1.FormCreate(Sender: TObject);

begin

Xmin := 0;

Xmax := 2 * Pi;

Ymin := -1;

Ymax := 1;

Hx := pi/2;

Hy := 0.5;

h := 0.01;

 

Edit1.Text := FloatToStr(Xmin);

Edit2.Text := FloatToStr(Xmax);

Edit3.Text := FloatToStr(Ymin);

Edit4.Text := FloatToStr(Ymin);

Edit5.Text := FloatToStr(Hx);

Edit6.Text := FloatToStr(Hy);

Edit7.Text := FloatToStr(h);

 

Chart1.BottomAxis.Automatic := False;

Chart1.BottomAxis.Minimum := Xmin;

Chart1.BottomAxis.Maximum := Xmax;

 

Chart1.LeftAxis.Automatic := False;

Chart1.LeftAxis.Minimum := Ymin;

Chart1.LeftAxis.Maximum := Ymax;

 

Chart1.BottomAxis.Increment := Hx;

Chart1.LeftAxis.Increment := Hy;

end;

 

Procedure TForm1.Button1Click(Sender: TObject);

var

x, y1, y2 : extended;

begin

Series1.Clear;

Series2.Clear;

Xmin := StrToFloat(Edit1.Text);

Xmax := StrToFloat(Edit2.Text);

h := StrToFloat(Edit7.Text);

x := Xmin;

Repeat

y1 := sin(x);

Series1.AddXY(x, y1, '', clTeeColor);

y2 := cos(x);

Series2.AddXY(x, y2, '', clTeeColor);

x := x + h;

Until (x > Xmax);

end;

 

Procedure TForm1.Button2Click(Sender: TObject);

begin

Halt //Exit

end;

end.