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


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

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



 

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

 

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

 

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

После запуска программы и нажатия кнопки «Построение графиков» на экране отображаются графики указанных функций, как показано на рисунке. 12.3.

 

Рис. 12.3. Графики функций

 

Модуль программы построения и отображения графиков

Ниже приведен программный модуль построения и отображения графиков и диаграмм с использованием компонента TChart.

unit UnProgrGraph;

Interface

Uses

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

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

Type

TForm1 = class(TForm)

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Label6: TLabel;

Label7: TLabel;

Edit1: TEdit;

Edit2: TEdit;

Edit3: TEdit;

Edit4: TEdit;

Edit5: TEdit;

Edit6: TEdit;

Edit7: TEdit;

Button1: TButton;

Button2: TButton;

BitBtn1: TBitBtn;

Chart1: TChart;

Series1: TLineSeries;

Series2: TLineSeries;

Series3: 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.0;

Xmax:=2*pi;

Ymin:=-1;

Ymax:=2;

Hx:=pi/2;

Hy:=0.5;

h:=0.01;

{Вывод данных в окно однострочных редакторов}

Edit1.Text:=FloatToStr(Xmin);

Edit1.Text:=FloatToStr(Xmax);

Edit1.Text:=FloatToStr(Ymin);

Edit1.Text:=FloatToStr(Ymax);

Edit1.Text:=FloatToStr(Hx);

Edit1.Text:=FloatToStr(Hy);

Edit1.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(Edit1.Text);

Xmin:=StrToFloat(Edit1.Text);

Xmax:=StrToFloat(Edit1.Text);

Hx:=StrToFloat(Edit1.Text);

Hy:=StrToFloat(Edit1.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;

a,b,fx:extended;

k1,k2:extended;

Begin

{Очистка графиков}

Series1.Clear;

Series2.Clear;

Series3.Clear;

Xmin:=StrToFloat(Edit1.Text);

Xmax:=StrToFloat(Edit2.Text);

h:=StrToFloat(Edit7.Text);

x:=Xmin;

{Варианты значений коэффициентов задаются преподавателем}

a:=1.25; b:=1.25;

k1:=0.01; k2:=0.001;

 

Repeat

fx:=sin(x); // Расчет функции 1

if x<2.3 then y1:=(a+b)/(4+sqr(cos(x)))

else if (x>=2.3) and (x<5) then y1:=(a+b)/(x+1)

else y1:=k1*exp(x)+fx;

Series1.AddXY(x,y1,'',clTeeColor); // Вывод точки на график

y2:=cos(x); // Расчет функции cos(x)

Series2.AddXY(x,y2,'',clTeeColor); // Вывод точки на график

fx:=cos(x); // Расчет функции 2

if x<2.3 then y2:=(a+b)/(4+sqr(cos(x)));

if (x>=2.3) and (x<5) then y2:=(a+b)/(x+1);

if x>=5 then y2:=k2*exp(x)+fx;

Series3.AddXY(x,y2,'',clTeeColor); // Вывод точки на график

x:=x+h; // Увеличение x на величину h

until (x>Xmax);

end;

end.

 

12.4. Выполнение индивидуального задания

Постройте графики функций для соответствующих вариантов из лабораторной работы №3 [6]. Таблицу данных получить путем изменения параметра X с шагом h. Значения исходных параметров и коэффициентов k 1, k 2 принять по указанию преподавателя. Самостоятельно выбрать удобные параметры настройки.

 

 

Приложение 1



Поделиться:


Последнее изменение этой страницы: 2016-12-16; просмотров: 375; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.138.134.229 (0.015 с.)