Цель работы : Показать умение создания современного приложения на Delphi
Постановка задачи : Разработать программу, поддерживающую различные управления вычислительным процессом с помощьюTPageControl, TtabSheet, TСhar, Стандартные диалоговые компоненты, ТPopupMenu, TMainMenu, TtoolBar и др. на примере л.р. №8.
Листинг программы:
Текст главного модуля:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, TeEngine, Series, ExtCtrls, TeeProcs, Chart, StdCtrls, ComCtrls,
ToolWin, ImgList, Buttons, Menus, IniFiles;
type
TForm1 = class(TForm)
ImageList1: TImageList;
PageControl1: TPageControl;
TabSheet1: TTabSheet;
Panel1: TPanel;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label5: TLabel;
Label6: TLabel;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
Label13: TLabel;
Label14: TLabel;
TabSheet2: TTabSheet;
ToolBar1: TToolBar;
run: TToolButton;
BXmin: TToolButton;
BXmax: TToolButton;
BYmin: TToolButton;
BYmax: TToolButton;
BH: TToolButton;
BY: TToolButton;
BZ: TToolButton;
Chart1: TChart;
Series1: TLineSeries;
Image1: TImage;
BitBtn1: TBitBtn;
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
StatusBar1: TStatusBar;
procedure FormCreate(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure runClick(Sender: TObject);
procedure BXminClick(Sender: TObject);
procedure BXmaxClick(Sender: TObject);
procedure BYminClick(Sender: TObject);
procedure BYmaxClick(Sender: TObject);
procedure BHClick(Sender: TObject);
procedure BYClick(Sender: TObject);
procedure BZClick(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action:TCloseAction);
procedure Panel1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure TabSheet1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure ToolBar1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure BitBtn1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure runMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure BXminMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure BXmaxMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure BYminMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure BYmaxMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure BHMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure BYMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure BZMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
ConfigFile : TIniFile;
Variable1 : extended;
Variable2 : extended;
Variable3 : extended;
Variable4 : extended;
Variable5 : extended;
Variable6 : extended;
Variable7 : extended;
InitDir : string;
Xmin,Xmax,Ymin,Ymax,y,z,h:extended;
implementation
uses Unit2, Unit3, Unit4, Unit5, Unit6, Unit7, Unit8;
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
(*Установить значение текущей директории*)
InitDir:=GetCurrentDir;
(*Создать ini-файл Model в текущей директории*)
ConfigFile:=TIniFile.Create(InitDir+ '\Model.ini');
(*Прочитать значение переменной Variable*)
Variable1:=StrToFloat(ConfigFile.ReadString('Model','Variable1','1'));
Variable2:=StrToFloat(ConfigFile.ReadString('Model','Variable2','10'));
Variable3:=StrToFloat(ConfigFile.ReadString('Model','Variable3','0'));
Variable4:=StrToFloat(ConfigFile.ReadString('Model','Variable4','20'));
Variable5:=StrToFloat(ConfigFile.ReadString('Model','Variable5','0,4'));
Variable6:=StrToFloat(ConfigFile.ReadString('Model','Variable6','2'));
Variable7:=StrToFloat(ConfigFile.ReadString('Model','Variable7','0,8'));
(*Показать значения переменных Variable в окнах Label*)
Xmin:=Variable1;
Xmax:=Variable2;
Ymin:=Variable3;
Ymax:=Variable4;
H:=Variable5;
Y:=Variable6;
Z:=Variable7;
Label5.Caption:=FloatToStr(Xmin);
Label6.Caption:=FloatToStr(Xmax);
Label10.Caption:=FloatToStr(Ymin);
Label11.Caption:=FloatToStr(Ymax);
Label12.Caption:=FloatToStr(H);
Label13.Caption:=FloatToStr(Y);
Label14.Caption:=FloatToStr(Z);
BitBtn1Click(Sender);
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
var
x,b : extended;
begin
Series1.Clear;
x := Xmin;
Chart1.BottomAxis.Automatic := False;
Chart1.BottomAxis.Maximum := Xmax;
Chart1.BottomAxis.Minimum := Xmin;
Chart1.LeftAxis.Automatic := False;
Chart1.LeftAxis.Minimum := Ymin;
Chart1.LeftAxis.Maximum := Ymax;
Repeat
b:= Exp(-x*ln(2))* Sqrt((x+Exp(1/4*ln(Abs(y)))))* Exp(1/3*ln(Exp((x-1/sin(z)))));
Series1.AddXY(x,b,'',clTeeColor);
x := x+h;
Until (x>Xmax);
end;
procedure TForm1.runClick(Sender: TObject);
begin
BitBtn1Click(Sender);
end;
procedure TForm1.BXminClick(Sender: TObject);
begin
Form2.Visible:=True;
end;
procedure TForm1.BXmaxClick(Sender: TObject);
begin
Form3.Visible:=True;
end;
procedure TForm1.BYminClick(Sender: TObject);
begin
Form4.Visible:=True;
end;
procedure TForm1.BYmaxClick(Sender: TObject);
begin
Form5.Visible:=True;
end;
procedure TForm1.BHClick(Sender: TObject);
begin
Form6.Visible:=True;
end;
rocedure TForm1.BYClick(Sender: TObject);
begin
Form7.Visible:=True;
end;
procedure TForm1.BZClick(Sender: TObject);
begin
Form8.Visible:=True;
end;
procedure TForm1.N2Click(Sender: TObject);
begin
Form1.Close;
end;
procedure TForm1.N3Click(Sender: TObject);
begin
MessageBox(0,'Лаб. раб. №14 ','О программе',mb_OK);
end;
Procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
//Закрыть объекты TIniFile
ConfigFile.Free;
end;
procedure TForm1.Panel1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
StatusBar1.SimpleText:='';
end;
procedure TForm1.TabSheet1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
StatusBar1.SimpleText:='';
end;
procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
StatusBar1.SimpleText:='';
end;
procedure TForm1.ToolBar1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
StatusBar1.SimpleText:='';
end;
procedure TForm1.BitBtn1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
StatusBar1.SimpleText:='Построить график';
end;
procedure TForm1.runMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
StatusBar1.SimpleText:='Построить график';
end;
procedure TForm1.BXminMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
StatusBar1.SimpleText:='Х минимальное';
end;
procedure TForm1.BXmaxMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
StatusBar1.SimpleText:='Х максимальное';
end;
procedure TForm1.BYminMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
StatusBar1.SimpleText:='Y минимальное';
end;
procedure TForm1.BYmaxMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
StatusBar1.SimpleText:='Y максимальное';
end;
procedure TForm1.BHMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
StatusBar1.SimpleText:='Шаг таблицы';
end;
procedure TForm1.BYMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
StatusBar1.SimpleText:='Ввод Y';
end;
procedure TForm1.BZMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
StatusBar1.SimpleText:='Ввод Z';
end;
end.
Текст остальных модулей:
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons;
type
TForm2 = class(TForm)
Label1: TLabel;
Edit1: TEdit;
BitBtn1: TBitBtn;
procedure BitBtn1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
uses Unit1;
{$R *.dfm}
procedure TForm2.BitBtn1Click(Sender: TObject);
begin
Xmin:=StrToFloat(Edit1.Text);
Form1.Label5.Caption:= FloatToStr(Xmin);
//Присвоить значение переменной Variable
Variable1 :=StrToFloat(Edit1.Text);;
//Записать значение переменной Variable в INI-файл Model
ConfigFile.WriteString('Model', 'Variable1',FloatToStr(Variable1));
Form2.Close;
end;
procedure TForm2.FormCreate(Sender: TObject);
begin
Edit1.Text:= FloatToStr(Xmin);
end;
end.
unit Unit3;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons;
type
TForm3 = class(TForm)
Edit1: TEdit;
Label1: TLabel;
BitBtn1: TBitBtn;
procedure FormCreate(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form3: TForm3;
implementation
uses Unit1 ;
{$R *.dfm}
procedure TForm3.FormCreate(Sender: TObject);
begin
Edit1.Text:= FloatToStr(Xmax);
end;
procedure TForm3.BitBtn1Click(Sender: TObject);
begin
Xmax:=StrToFloat(Edit1.Text);
Form1.Label6.Caption:= FloatToStr(Xmax);
//Присвоить значение переменной Variable
Variable2 :=StrToFloat(Edit1.Text);;
//Записать значение переменной Variable в INI-файл Model
ConfigFile.WriteString('Model', 'Variable2',FloatToStr(Variable2));
Form3.Close;
end;
end.
unit Unit4;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons;
type
TForm4 = class(TForm)
BitBtn1: TBitBtn;
Label1: TLabel;
Edit1: TEdit;
procedure FormCreate(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form4: TForm4;
implementation
uses Unit1;
{$R *.dfm}
procedure TForm4.FormCreate(Sender: TObject);
begin
Edit1.Text:= FloatToStr(Ymin);
end;
procedure TForm4.BitBtn1Click(Sender: TObject);
begin
Ymin:=StrToFloat(Edit1.Text);
Form1.Label10.Caption:= FloatToStr(Ymin);
//Присвоить значение переменной Variable
Variable3 :=StrToFloat(Edit1.Text);;
//Записать значение переменной Variable в INI-файл Model
ConfigFile.WriteString('Model', 'Variable3',FloatToStr(Variable3));
Form4.Close;
end;
end.
***
unit Unit5;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons;
type
TForm5 = class(TForm)
Label1: TLabel;
Edit1: TEdit;
BitBtn1: TBitBtn;
procedure BitBtn1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form5: TForm5;
implementation
uses unit1;
{$R *.dfm}
procedure TForm5.BitBtn1Click(Sender: TObject);
begin
Ymax:=StrToFloat(Edit1.Text);
Form1.Label11.Caption:= FloatToStr(Ymax);
//Присвоить значение переменной Variable
Variable4 :=StrToFloat(Edit1.Text);;
//Записать значение переменной Variable в INI-файл Model
ConfigFile.WriteString('Model', 'Variable4',FloatToStr(Variable4));
Form5.Close;
end;
procedure TForm5.FormCreate(Sender: TObject);
begin
Edit1.Text:= FloatToStr(Ymax);
end;
end.
unit Unit6;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons;
type
TForm6 = class(TForm)
Label1: TLabel;
Edit1: TEdit;
BitBtn1: TBitBtn;
procedure FormCreate(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form6: TForm6;
implementation
uses Unit1;
{$R *.dfm}
procedure TForm6.FormCreate(Sender: TObject);
begin
Edit1.Text:= FloatToStr(h);
end;
procedure TForm6.BitBtn1Click(Sender: TObject);
begin
h:=StrToFloat(Edit1.Text);
Form1.Label12.Caption:= FloatToStr(h);
//Присвоить значение переменной Variable
Variable5 :=StrToFloat(Edit1.Text);;
//Записать значение переменной Variable в INI-файл Model
ConfigFile.WriteString('Model', 'Variable5',FloatToStr(Variable5));
Form6.Close;
end;
end.
unit Unit7;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons;
type
TForm7 = class(TForm)
BitBtn1: TBitBtn;
Label1: TLabel;
Edit1: TEdit;
procedure FormCreate(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form7: TForm7;
implementation
uses Unit1;
{$R *.dfm}
procedure TForm7.FormCreate(Sender: TObject);
begin
Edit1.Text:= FloatToStr(y);
end;
procedure TForm7.BitBtn1Click(Sender: TObject);
begin
y:=StrToFloat(Edit1.Text);
Form1.Label13.Caption:= FloatToStr(y);
//Присвоить значение переменной Variable
Variable6 :=StrToFloat(Edit1.Text);;
//Записать значение переменной Variable в INI-файл Model
ConfigFile.WriteString('Model', 'Variable6',FloatToStr(Variable6));
Form7.Close;
end;
end.
unit Unit8;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons;
type
TForm8 = class(TForm)
Label1: TLabel;
Edit1: TEdit;
BitBtn1: TBitBtn;
procedure FormCreate(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form8: TForm8;
implementation
uses Unit1;
{$R *.dfm}
procedure TForm8.FormCreate(Sender: TObject);
begin
Edit1.Text:= FloatToStr(z);
end;
procedure TForm8.BitBtn1Click(Sender: TObject);
begin
z:=StrToFloat(Edit1.Text);
Form1.Label14.Caption:= FloatToStr(z);
//Присвоить значение переменной Variable
Variable7 :=StrToFloat(Edit1.Text);;
//Записать значение переменной Variable в INI-файл Model
ConfigFile.WriteString('Model', 'Variable7',FloatToStr(Variable7));
Form8.Close;
end;
end.
Результат выполнения программы:
Выводы: показали умение создания современного приложения на Delphi.