- •Федеральное агентство по образованию Государственное образовательное учреждение высшего профессионального образования
- •Введение
- •Описание имитационной модели программы
- •Описание разработанной иерархии классов
- •Описание каждого класса в отдельности
- •Разбиение программы на модули и их описание
- •Исходные коды программы
- •Заключение
- •Список использованной литературы
Исходные коды программы
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, ComCtrls, StdCtrls, Menus, Math, ImgList,mmsystem,grfunc_,unit3,
Gauges;
Type
TAxes = class
private
xS,yS:integer; //Начальные координаты осей
Constructor create;
public
Procedure Show;
end;
Type //5
TSlideBlock = class //Описание класса первого звена
private
x1,x2:integer; //координаты Х
y1,y2:integer;
public
t,TN:real; //время
fblockwidth:integer; //ширина первого звена
fblockheight:integer; //высота
a,v,k : double;
vpravo:boolean; //направление движения
SMax:integer; //длинна пути(в одну сторону)
Constructor Create;
procedure time;
procedure Show;virtual;
procedure Move;
procedure setStartPos(XPos , YPos:integer);
procedure setBlockWidth(const Value: integer);
procedure setBlockHeight(const Value:integer);
procedure writeX1(newX:integer);
function getX1():integer;
procedure writeY1(newY:integer);
function getY1():integer;
procedure writeY2(newY:integer);
function getY2():integer;
Property prX1: integer read getX1 write writeX1;
Property prY1: integer read getY1 write writeY1;
Property prY2: integer read getY2 write writeY2;
end;
Type //12
TSlideBlock2 = class(TSlideBlock)
z1,z2:real;
procedure Show; override;
Constructor Create;
end;
Type //1
TCrank = class(TSlideBlock2)
public
Angle : real;
i : integer;
procedure Show;override;
Constructor Create;
end;
type
TForm1 = class(TForm)
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
Panel1: TPanel;
Image1: TImage;
Button1: TButton;
GroupBox1: TGroupBox;
Edit1: TEdit;
GroupBox2: TGroupBox;
Edit2: TEdit;
GroupBox3: TGroupBox;
Edit3: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Edit4: TEdit;
Label4: TLabel;
Edit5: TEdit;
Label5: TLabel;
Edit6: TEdit;
Label6: TLabel;
Label7: TLabel;
MainMenu1: TMainMenu;
File1: TMenuItem;
Button2: TButton;
Edit7: TEdit;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
Edit8: TEdit;
Edit9: TEdit;
Help1: TMenuItem;
E1: TMenuItem;
Label11: TLabel;
Label12: TLabel;
Label13: TLabel;
Edit10: TEdit;
Timer1: TTimer;
Save1: TMenuItem;
Saveas1: TMenuItem;
N1: TMenuItem;
N2: TMenuItem;
Edit11: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
ImageList1: TImageList;
ools1: TMenuItem;
N7: TMenuItem;
N8: TMenuItem;
Button3: TButton;
Timer2: TTimer;
Button4: TButton;
N9: TMenuItem;
Button5: TButton;
Load1: TMenuItem;
N10: TMenuItem;
SaveDialog1: TSaveDialog;
Animate1: TAnimate;
Gauge1: TGauge;
function Map(x,in_min,in_max,out_min,out_max : double) : double;
procedure Erase;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure AllEditKeyPress(Sender:TObject; var Key: Char);
procedure Button2Click(Sender: TObject);
procedure E1Click(Sender: TObject);
procedure TabSheet1ContextPopup(Sender: TObject; MousePos: TPoint;
var Handled: Boolean);
procedure N5Click(Sender: TObject);
procedure N6Click(Sender: TObject);
procedure N4Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure Edit1Exit(Sender: TObject);
procedure Edit4Exit(Sender: TObject);
procedure Edit5Exit(Sender: TObject);
procedure Edit6Exit(Sender: TObject);
procedure Edit2Exit(Sender: TObject);
procedure Edit7Exit(Sender: TObject);
procedure Edit9Exit(Sender: TObject);
procedure Edit3Exit(Sender: TObject);
procedure Edit10Exit(Sender: TObject);
procedure Edit8Exit(Sender: TObject);
procedure TabSheet2Enter(Sender: TObject);
procedure TabSheet2ContextPopup(Sender: TObject; MousePos: TPoint;
var Handled: Boolean);
procedure TabSheet2Show(Sender: TObject);
procedure TabSheet1Show(Sender: TObject);
procedure TabSheet1Enter(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure Timer2Timer(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure N8Click(Sender: TObject);
procedure N7Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Save1Click(Sender: TObject);
procedure Load1Click(Sender: TObject);
procedure N1Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure N10Click(Sender: TObject);
procedure Saveas1Click(Sender: TObject);
procedure N9Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1 : TForm1;
SlideBlock1 : TSlideBlock;
SlideBlock2 : TSlideBlock2;
Crank : TCrank;
Axes : TAxes;
AlphaR : integer;
Clo : boolean;
xt,yt:integer;
implementation
uses LogoUnit, Unit4, Unit5, Unit6;
{$R *.dfm}
{ TSlideBlock }
constructor TSlideBlock.Create;
begin
inherited Create;
Self.setBlockWidth(strtoint(Form1.Edit1.Text));
Self.setStartPos(strtoint(Form1.Edit5.Text),strtoint(Form1.Edit6.Text));
Self.setBlockHeight(strtoint(Form1.Edit4.Text));
Self.SMax:=strtoint(Form1.Edit8.Text);
Self.vpravo:=true;
Self.t:=0;
Self.v:=0;
Self.TN:=1;
end;
function TSlideBlock.getX1: integer;
begin
Result:=Self.x1;
end;
function TSlideBlock.getY1: integer;
begin
Result:=Self.y1;
end;
function TSlideBlock.getY2: integer;
begin
Result:=Self.y2;
end;
procedure TSlideBlock.Move;
begin
end;
procedure TSlideBlock.setBlockHeight(const Value: integer);
begin
fblockheight:=Value;
end;
procedure TSlideBlock.setBlockWidth(const Value: integer);
begin
fblockwidth:=Value;
end;
procedure TSlideBlock.setStartPos(XPos, YPos: integer);
begin
prX1:=strtoint(Form1.Edit5.Text);
prY1:=strtoint(Form1.Edit6.Text);
end;
procedure TSlideBlock.Show;
begin
Form1.Image1.Canvas.Pen.Color:=clBlack;
Form1.Image1.Canvas.Pen.Width:=2;
Form1.Image1.Canvas.Rectangle(prX1,Form1.Image1.Height-strtoint(Form1.Edit6.Text),fblockwidth+prX1,Form1.Image1.Height-fblockheight-strtoint(Form1.Edit6.Text));
end;
procedure TSlideBlock.time;
begin
end;
{ Axes }
constructor TAxes.create;
begin
Self.xS:=5;
Self.yS:=5;
end;
procedure TAxes.Show;
begin
Form1.Image1.Canvas.Pen.Color:=clRed;
Form1.Image1.Canvas.Pen.Width:=1;
Form1.Image1.Canvas.MoveTo(xS,Form1.Image1.Height-5);
Form1.Image1.Canvas.LineTo(xS,5);
Form1.Image1.Canvas.MoveTo(xS,5);
Form1.Image1.Canvas.LineTo(0,10);
Form1.Image1.Canvas.MoveTo(xS,5);
Form1.Image1.Canvas.LineTo(10,10);
Form1.Image1.Canvas.MoveTo(xS,Form1.Image1.Height-yS);
Form1.Image1.Canvas.LineTo(Form1.Image1.Width-5,Form1.Image1.Height-yS);
Form1.Image1.Canvas.MoveTo(Form1.Image1.Width-5,Form1.Image1.Height-yS);
Form1.Image1.Canvas.LineTo(Form1.Image1.Width-10,Form1.Image1.Height-yS-5);
Form1.Image1.Canvas.MoveTo(Form1.Image1.Width-5,Form1.Image1.Height-yS);
Form1.Image1.Canvas.LineTo(Form1.Image1.Width-10,Form1.Image1.Height);
end;
procedure TForm1.AllEditKeyPress(Sender:TObject; var Key: Char);
begin
if(not(Key in ['0'..'9',#8])) then begin Key := #0;Beep;end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Axes:=TAxes.Create;
SlideBlock1:=TSlideBlock.Create;
SlideBlock2:=TSlideBlock2.Create;
Crank:=TCrank.Create;
Form1.Button2.Click;
Form1.Button1.Click;
Timer1.Enabled:=False;
AlphaR:=255;
Clo:=false;
xt:=0;
yt:=0;
SaveDialog1.Title := 'Сохранить таблицу в...';
SaveDialog1.InitialDir := GetCurrentDir;
SaveDialog1.Filter := 'Text file|*.txt|Robo file|*.ROBOT';
SaveDialog1.DefaultExt := 'ROBOT';
Animate1.FileName:='data\DELPHI.avi';
Animate1.Active:=true;
end;
procedure TSlideBlock.writeX1(newX: integer);
begin
Self.x1:=newX;
end;
procedure TSlideBlock.writeY1(newY: integer);
begin
Self.y1:=newY;
end;
procedure TSlideBlock.writeY2(newY: integer);
begin
Self.y2:=newY;
end;
{ TSlideBlock2 }
constructor TSlideBlock2.Create;
begin
Self.prX1:=SlideBlock1.prX1;
Self.prY1:=SlideBlock1.prY1;
Self.vpravo:=true;
prY2:=0;
end;
procedure TSlideBlock2.Show;
begin
prX1:=SlideBlock1.prX1+SlideBlock1.fblockwidth;
prY1:=SlideBlock1.prY1+SlideBlock1.fblockheight;
Form1.Image1.Canvas.Pen.Color:=clBlack;
Form1.Image1.Canvas.Pen.Width:=2;
Form1.Image1.Canvas.MoveTo(prX1-1,Form1.Image1.Height-y1);
Form1.Image1.Canvas.LineTo(prX1-1,Form1.Image1.Height-y1-strtoint(Form1.Edit9.Text)
-strtoint(Form1.Edit7.Text));
Form1.Image1.Canvas.MoveTo(prX1+fblockwidth-9,Form1.Image1.Height-2-prY1-prY2);
Form1.Image1.Canvas.LineTo(prX1+fblockwidth,Form1.Image1.Height-Round(fblockheight/2)-2-prY1-prY2);
Form1.Image1.Canvas.MoveTo(prX1+fblockwidth,Form1.Image1.Height-Round(fblockheight/2)-2-prY1-prY2);
Form1.Image1.Canvas.LineTo(prX1+fblockwidth-9,Form1.Image1.Height-fblockheight-2-prY1-prY2);
Form1.Image1.Canvas.Rectangle(prX1,Form1.Image1.Height-prY1-prY2,prX1+fblockwidth-8,Form1.Image1.Height-fblockheight-prY1-1-prY2);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Form1.Erase;
Axes.Show;
SlideBlock1.Show;
SlideBlock2.Show;
Crank.Show;
Form1.Button5.Show;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Gauge1.MinValue:=strtoint(Form1.Edit5.Text);
Gauge1.MaxValue:=strtoint(Form1.Edit8.Text)-strtoint(Form1.Edit5.Text)-strtoint(Form1.Edit1.Text);
SlideBlock1.v:=0;
SlideBlock2.v:=0;
SlideBlock2.prY2:=1;
SlideBlock1.setBlockWidth(strtoint(Form1.Edit1.Text));
SlideBlock1.setBlockHeight(strtoint(Form1.Edit4.Text));
SlideBlock1.setStartPos(strtoint(Form1.Edit5.Text),strtoint(Form1.Edit6.Text));
SlideBlock2.fblockheight:=strtoint(Form1.Edit7.Text);
SlideBlock2.fblockwidth:=strtoint(Form1.Edit2.Text);
yt:=0; //удаляем старую таблицу.
end;
procedure TForm1.Erase;
begin
Form1.Image1.Canvas.Brush.Color:=clWhite;
Form1.Image1.Canvas.Rectangle(0,0,Form1.Image1.Width+1,Form1.Image1.Height+1);
end;
procedure TForm1.E1Click(Sender: TObject);
begin
Form1.Close;
end;
{ TCrank }
constructor TCrank.Create;
begin
i:=0;
t:=0;
Angle:=0;
end;
procedure TCrank.Show;
begin
Form1.Image1.Canvas.MoveTo(SlideBlock2.prX1+
SlideBlock2.fblockwidth,Form1.Image1.Height-Round(SlideBlock2.fblockheight/2)-
2-SlideBlock2.prY1-SlideBlock2.prY2);
Form1.Image1.Canvas.LineTo(SlideBlock2.prX1+
SlideBlock2.fblockwidth+Round(sin(Angle*pi/180)*strtoint(Form1.Edit3.Text)),
Form1.Image1.Height-Round(SlideBlock2.fblockheight/2)-
-2-SlideBlock2.prY1-Round(cos(Angle*pi/180)*strtoint(Form1.Edit3.Text))-SlideBlock2.prY2);
end;
procedure TForm1.TabSheet1ContextPopup(Sender: TObject; MousePos: TPoint;
var Handled: Boolean);
begin
Form1.Button2.Click;
end;
procedure TForm1.N5Click(Sender: TObject);
begin
Form1.Timer1.Enabled:=False;
end;
procedure TForm1.N6Click(Sender: TObject);
begin
Form1.Timer1.Enabled:=True;
end;
procedure TForm1.N4Click(Sender: TObject);
begin
Form1.Erase;
end;
procedure TForm1.N3Click(Sender: TObject);
begin
Form1.Button2.Click;
end;
procedure TForm1.Edit1Exit(Sender: TObject);
begin
if Form1.Edit1.Text='' then
begin
Form1.Edit1.Text:='1';
Playsound('data\sound\error',0,SND_ASYNC)
end;
end;
procedure TForm1.Edit4Exit(Sender: TObject);
begin
if Form1.Edit4.Text='' then
begin
Form1.Edit4.Text:='1';
Playsound('data\sound\error',0,SND_ASYNC)
end;
end;
procedure TForm1.Edit5Exit(Sender: TObject);
begin
if Form1.Edit5.Text='' then
begin
Form1.Edit5.Text:='1';
Playsound('data\sound\error',0,SND_ASYNC)
end;
end;
procedure TForm1.Edit6Exit(Sender: TObject);
begin
if Form1.Edit6.Text='' then
begin
Form1.Edit6.Text:='1';
Playsound('data\sound\error',0,SND_ASYNC)
end;
end;
procedure TForm1.Edit2Exit(Sender: TObject);
begin
if Form1.Edit2.Text='' then
begin
Form1.Edit2.Text:='1';
Playsound('data\sound\error',0,SND_ASYNC)
end;
end;
procedure TForm1.Edit7Exit(Sender: TObject);
begin
if Form1.Edit7.Text='' then
begin
Form1.Edit7.Text:='1';
Playsound('data\sound\error',0,SND_ASYNC)
end;
end;
procedure TForm1.Edit9Exit(Sender: TObject);
begin
if Form1.Edit9.Text='' then
begin
Form1.Edit9.Text:='1';
Playsound('data\sound\error',0,SND_ASYNC)
end;
end;
procedure TForm1.Edit3Exit(Sender: TObject);
begin
if Form1.Edit3.Text='' then
begin
Form1.Edit3.Text:='1';
Playsound('data\sound\error',0,SND_ASYNC)
end;
end;
procedure TForm1.Edit10Exit(Sender: TObject);
begin
if Form1.Edit10.Text='' then
begin
Form1.Edit10.Text:='1';
Playsound('data\sound\error',0,SND_ASYNC)
end;
end;
procedure TForm1.Edit8Exit(Sender: TObject);
begin
if Form1.Edit8.Text='' then
begin
Form1.Edit8.Text:='1';
Playsound('data\sound\error',0,SND_ASYNC)
end;
end;
procedure TForm1.TabSheet2Enter(Sender: TObject);
begin
Form1.Timer1.Enabled:=False;
end;
procedure TForm1.TabSheet2ContextPopup(Sender: TObject; MousePos: TPoint;
var Handled: Boolean);
begin
Form1.Timer1.Enabled:=False;
end;
procedure TForm1.TabSheet2Show(Sender: TObject);
begin
Form1.Timer1.Enabled:=False;
end;
procedure TForm1.TabSheet1Show(Sender: TObject);
begin
Form1.Button2.Click;
end;
procedure TForm1.TabSheet1Enter(Sender: TObject);
begin
Form1.Button2.Click;
end;
function TForm1.Map(x, in_min, in_max, out_min, out_max: double): double;
begin
Result:=(x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
end;
procedure TForm1.FormShow(Sender: TObject);
begin
Logo.showmodal;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
Form1.Timer1.Enabled:=True;
Form1.Button4.Visible:=True;
Playsound('data\sound\start moving',0,SND_ASYNC)
end;
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
Form2.Close;
Form3.Close;
AboutProg.Close;
AboutMe.Close;
Form6.Close;
Playsound('data\sound\escape',0,SND_ASYNC);
Form1.Timer2.Enabled:=true;
CanClose:=false;
if Clo=true then
begin
Form1.Timer2.Enabled:=false;
CanClose:=true;
end;
end;
procedure TForm1.Timer2Timer(Sender: TObject);
begin
AlphaR:=AlphaR-1;
Form1.AlphaBlendValue:=AlphaR;
if(AlphaR=0) then
begin
Clo:=true;
Close;
end;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Form1.Button1.Click;
if SlideBlock1.vpravo=true then // позже заменить на тру
begin
//.................................... 1 звено..................................
SlideBlock1.k:=1-((strtoint(Form1.Edit8.Text) + strtoint(Form1.Edit5.Text) - strtoint(Form1.Edit1.Text) -
(SlideBlock1.prX1))/(strtoint(Form1.Edit8.Text) - strtoint(Form1.Edit1.Text) + strtoint(Form1.Edit5.Text)));
SlideBlock1.a:=0.5*sqr(pi)*Cos(pi*SlideBlock1.k);
SlideBlock1.v:=SlideBlock1.v+SlideBlock1.a;
SlideBlock1.prX1:=SlideBlock1.prX1 + round(SlideBlock1.v);
SlideBlock1.t:=SlideBlock1.t+0.01;
end;
//..............................................................................
//..................................... 2 звено.................................
SlideBlock2.k:=1-(strtoint(Form1.Edit9.Text)-
SlideBlock2.prY2)/(strtoint(Form1.Edit9.Text));
SlideBlock2.a:=2*pi*Sin(2*pi*SlideBlock2.k);
SlideBlock2.v:=SlideBlock2.v+SlideBlock2.a;
SlideBlock2.prY2:=round(SlideBlock2.prY2 + SlideBlock2.v);
//..............................................................................
//......3 ......................................................................
Crank.k:=1-(strtoint(Form1.Edit10.Text)-
Crank.Angle)/(strtoint(Form1.Edit10.Text));
if Crank.k<0.5 then
Crank.a:=4
else Crank.a:=-4;
Crank.v:=Crank.v+Crank.a;
Crank.Angle:=Crank.Angle+Crank.v;
//..............................................................................
if SlideBlock1.t/100<=Round(Form3.TN) then
begin
yt:=yt+1;
Form3.StringGrid1.Cells[1,yt]:=floattostr(SlideBlock1.a);
Form3.StringGrid1.Cells[2,yt]:=floattostr(SlideBlock1.v);
Form3.StringGrid1.Cells[3,yt]:=floattostr(SlideBlock1.prX1);
Form3.StringGrid1.Cells[4,yt]:=floattostr(SlideBlock2.a);
Form3.StringGrid1.Cells[5,yt]:=floattostr(SlideBlock2.v);
Form3.StringGrid1.Cells[6,yt]:=floattostr(SlideBlock2.prY2);
Form3.StringGrid1.Cells[7,yt]:=floattostr(Crank.a);
Form3.StringGrid1.Cells[8,yt]:=floattostr(Crank.v);
Form3.StringGrid1.Cells[9,yt]:=floattostr(Crank.angle);
end;
SlideBlock1.t:=SlideBlock1.t+1;
Gauge1.Progress:=SlideBlock1.prX1;
end;
procedure TForm1.N8Click(Sender: TObject);
begin
Form2.Visible:=true;
end;
procedure TForm1.N7Click(Sender: TObject);
begin
Form3.Visible:=true;
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
Form1.Timer1.Enabled:=False;
Form1.Button4.Hide;
end;
procedure TForm1.Button5Click(Sender: TObject);
begin
Form1.Erase;
Form1.Button5.Hide;
end;
procedure TForm1.Save1Click(Sender: TObject);
begin
Form3.SaveStringGrid(Form3.StringGrid1, 'data\temp.ROBOT');
end;
procedure TForm1.Load1Click(Sender: TObject);
begin
Form3.LoadStringGrid(Form3.StringGrid1, 'data\temp.ROBOT');
end;
procedure TForm1.N1Click(Sender: TObject);
begin
AboutProg.Show;
end;
procedure TForm1.N2Click(Sender: TObject);
begin
AboutMe.Show;
end;
procedure TForm1.N10Click(Sender: TObject);
begin
Form6.Show;
end;
procedure TForm1.Saveas1Click(Sender: TObject);
begin
if SaveDialog1.Execute then
Form3.SaveStringGrid(Form3.StringGrid1,SaveDialog1.FileName);
end;
procedure TForm1.N9Click(Sender: TObject);
begin
Form2.Button2.Click;
end;
end.
unit grfunc_;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ExtCtrls, StdCtrls, Buttons, printers, TeEngine, TeeFunci, Series,
TeeProcs, Chart;
type
TForm2 = class(TForm)
GroupBox2: TGroupBox;
Chart1: TChart;
Series1: TLineSeries;
TeeFunction1: TAddTeeFunction;
Button1: TButton;
Button2: TButton;
Chart2: TChart;
LineSeries1: TLineSeries;
AddTeeFunction1: TAddTeeFunction;
Chart3: TChart;
LineSeries2: TLineSeries;
AddTeeFunction2: TAddTeeFunction;
GroupBox1: TGroupBox;
Chart4: TChart;
LineSeries3: TLineSeries;
AddTeeFunction3: TAddTeeFunction;
Chart5: TChart;
LineSeries4: TLineSeries;
AddTeeFunction4: TAddTeeFunction;
Chart6: TChart;
LineSeries5: TLineSeries;
AddTeeFunction5: TAddTeeFunction;
GroupBox3: TGroupBox;
Chart7: TChart;
LineSeries6: TLineSeries;
AddTeeFunction6: TAddTeeFunction;
Chart8: TChart;
LineSeries7: TLineSeries;
AddTeeFunction7: TAddTeeFunction;
Chart9: TChart;
LineSeries8: TLineSeries;
AddTeeFunction8: TAddTeeFunction;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
RadioButton3: TRadioButton;
RadioButton4: TRadioButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
uses Unit1;
{$R *.DFM}
procedure TForm2.Button1Click(Sender: TObject);
var
i:double;
begin
Series1.Clear;
LineSeries1.Clear;
LineSeries2.Clear;
LineSeries3.Clear;
LineSeries4.Clear;
LineSeries5.Clear;
LineSeries6.Clear;
LineSeries7.Clear;
LineSeries8.Clear;
while i<=1 do
begin
Series1.AddXY(i,2*pi*Sin(2*pi*i),'',clGreen);
LineSeries1.AddXY(i,4*pi*pi*Cos(2*pi*i),'',clRed);
LineSeries2.AddXY(i,-8*pi*pi*pi*Sin(2*pi*i),'',clBlue);
LineSeries3.AddXY(i,0.5*pi*pi*Cos(pi*i),'',clGreen);
LineSeries4.AddXY(i,-2.78416*Sin(pi*i),'',clRed);
LineSeries5.AddXY(i,-8.7467*Cos(pi*i),'',clBlue);
if i<=0.5 then
begin
LineSeries6.AddXY(i,4,'',clGreen);
LineSeries7.AddXY(i,4*i,'',clRed);
LineSeries8.AddXY(i,2*i*i,'',clBlue);
end
else
begin
LineSeries6.AddXY(i,-4,'',clGreen);
LineSeries7.AddXY(i,-4*i,'',clRed);
LineSeries8.AddXY(i,-2*i*i,'',clBlue);
end;
i:=i+0.1;
end;
end;
procedure TForm2.Button2Click(Sender: TObject);
begin
if RadioButton1.Checked then
begin
Chart1.Print;
Chart2.Print;
Chart3.Print;
end;
if RadioButton2.Checked then
begin
Chart4.Print;
Chart5.Print;
Chart6.Print;
end;
if RadioButton3.Checked then
begin
Chart7.Print;
Chart8.Print;
Chart9.Print;
end;
if RadioButton4.Checked then
begin
Chart1.Print;
Chart2.Print;
Chart3.Print;
Chart4.Print;
Chart5.Print;
Chart6.Print;
Chart7.Print;
Chart8.Print;
Chart9.Print;
end;
end;
end.
unit LogoUnit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, pngimage,mmsystem;
type
TLogo = class(TForm)
Timer1: TTimer;
Image1: TImage;
procedure Timer1Timer(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Logo: TLogo;
t,a : integer;
implementation
{$R *.dfm}
procedure TLogo.Timer1Timer(Sender: TObject);
begin
if a<256 then
Logo.AlphaBlendValue:=a;
t:=t+70;
a:=a+2;
if t=7000 then
Close;
end;
procedure TLogo.FormCreate(Sender: TObject);
begin
t:=0;a:=0;
Logo.Image1.Picture.LoadFromFile('data\Logo.png');
Playsound('data\sound\entry',0,SND_ASYNC);
end;
end.
unit Unit3;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids;
type
TForm3 = class(TForm)
StringGrid1: TStringGrid;
procedure FormCreate(Sender: TObject);
procedure SaveStringGrid(StringGrid: TStringGrid; const FileName: TFileName);
procedure LoadStringGrid(StringGrid: TStringGrid; const FileName: TFileName);
function setTime():double;
private
{ Private declarations }
public
TN : real;
{ Public declarations }
end;
var
Form3: TForm3;
implementation
{$R *.dfm}
procedure TForm3.FormCreate(Sender: TObject);
begin
Form3.StringGrid1.Cells[0,0]:='Время';
Form3.StringGrid1.Cells[1,0]:='A1(t)';
Form3.StringGrid1.Cells[2,0]:='V1(t)';
Form3.StringGrid1.Cells[3,0]:='S1(t)';
Form3.StringGrid1.Cells[4,0]:='A2(t)';
Form3.StringGrid1.Cells[5,0]:='V2(t)';
Form3.StringGrid1.Cells[6,0]:='S2(t)';
Form3.StringGrid1.Cells[7,0]:='A3(t)';
Form3.StringGrid1.Cells[8,0]:='V3(t)';
Form3.StringGrid1.Cells[9,0]:='R3(t)';
TN:=0;
Self.setTime;
end;
procedure TForm3.LoadStringGrid(StringGrid: TStringGrid; const FileName: TFileName);
var
f: TextFile;
iTmp, i, k: Integer;
strTemp: String;
begin
AssignFile(f, FileName);
Reset(f);
with StringGrid do
begin
// Get number of columns
Readln(f, iTmp);
ColCount := iTmp;
// Get number of rows
Readln(f, iTmp);
RowCount := iTmp;
// loop through cells & fill in values
for i := 0 to ColCount - 1 do
for k := 0 to RowCount - 1 do
begin
Readln(f, strTemp);
Cells[i, k] := strTemp;
end;
end;
CloseFile(f);
end;
procedure TForm3.SaveStringGrid(StringGrid: TStringGrid; const FileName: TFileName);
var
f: TextFile;
i, k: Integer;
begin
AssignFile(f, FileName);
Rewrite(f);
with StringGrid do
begin
// Write number of Columns/Rows
Writeln(f, ColCount);
Writeln(f, RowCount);
// loop through cells
for i := 0 to ColCount - 1 do
for k := 0 to RowCount - 1 do
Writeln(F, Cells[i, k]);
end;
CloseFile(F);
end;
function TForm3.setTime: double;
var
i:integer;
begin
i:=1;
while TN<4 do
begin
Form3.StringGrid1.Cells[0,i]:=floattostr(TN);
TN:=TN+0.02;
i:=i+1;
end;
end;
end.
unit Unit4;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TAboutProg = class(TForm)
StaticText1: TStaticText;
private
{ Private declarations }
public
{ Public declarations }
end;
var
AboutProg: TAboutProg;
implementation
{$R *.dfm}
end.
unit Unit5;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls;
type
TAboutMe = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Image1: TImage;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
AboutMe: TAboutMe;
implementation
{$R *.dfm}
procedure TAboutMe.FormCreate(Sender: TObject);
begin
AboutMe.Image1.Picture.LoadFromFile('data\bmp\me.bmp');
end;
end.
unit Unit6;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls;
type
TForm6 = class(TForm)
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
TabSheet3: TTabSheet;
TabSheet4: TTabSheet;
TabSheet5: TTabSheet;
TabSheet6: TTabSheet;
TabSheet7: TTabSheet;
Memo1: TMemo;
Memo2: TMemo;
Memo3: TMemo;
Memo4: TMemo;
Memo5: TMemo;
Memo6: TMemo;
Memo7: TMemo;
private
{ Private declarations }
public
constructor Create;
{ Public declarations }
end;
var
Form6: TForm6;
implementation
{$R *.dfm}
{ TForm6 }
constructor TForm6.Create;
begin
end;
end.