Процедура TForm1.Button1Click обрабатывает нажатие кнопки “Установить оси”. Процедура TForm1.Button2Click обрабатывает нажатие кнопки “Построить график”. Для добавления координат точек (X,Y) из таблицы значений в двумерный массив объекта Seriesk используется процедура Series1.AddXY(Const AXValue, AYValue: Double; Const AXLabel: String; AColor: TColor) : Longint;, где AXValue, AYValue – координаты точки по осям X и Y; AXLabel может принимать значение ‘’; AСolor задает цвет линий (если равен clTeeColor, то принимается цвет, определенный при проектировании формы).
Текст программы имеет вид:
unit tem8;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ExtCtrls, TeeProcs, TeEngine, Chart, Buttons, StdCtrls, Series;
type
TForm1 = class(TForm)
Edit1: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Edit5: TEdit;
Button1: TButton;
Button2: TButton;
BitBtn1: TBitBtn;
Chart1: TChart;
Series2: TLineSeries;
Label6: TLabel;
Edit6: TEdit;
Label7: TLabel;
Edit7: TEdit;
Series1: 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(Ymax);
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);
begin
{Чтение даннных из окон однострочных редакторов}
Xmin:=StrToFloat(Edit1.Text);
Xmax:=StrToFloat(Edit2.Text);
Ymin:=StrToFloat(Edit3.Text);
Ymax:=StrToFloat(Edit4.Text);
Hx:=StrToFloat(Edit5.Text);
Hy:=StrToFloat(Edit6.Text);
Chart1.BottomAxis.Minimum:=Xmin; // Установка левой границы нижней оси
Chart1.BottomAxis.Maximum:=Xmax; // Установка правой границы нижней оси
Chart1.LeftAxis.Minimum:=Ymin; // Установка нижней границы левой оси
Chart1.LeftAxis.Maximum:=Ymax; // Установка верхней границы левой оси
Chart1.BottomAxis.Increment:=Hx; // Установка шага разметки по нижней оси
Chart1.LeftAxis.Increment:=Hy; // Установка шага разметки по левой оси
end;
procedure TForm1.Button2Click(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; // Начальное значение по оси X
repeat
y1:=sin(x); // Расчет функции
Series1.AddXY(x,y1,',clTeeColor); // Вывод точки на график
y2:=cos(x); // Расчет функции
Series2.AddXY(x,y2,',clTeeColor); // Вывод точки на график
x:=x+h; // Увеличение значения X на величину шага
Until (x>Xmax);
end;
end.