Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

LUCKY / TERRA / TERRA

.PAS
Скачиваний:
14
Добавлен:
16.04.2013
Размер:
7.64 Кб
Скачать
unit terra;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Menus, ComCtrls, Buttons, ExtCtrls, AppEvent, RXShell, RXSlider, RXClock,
RXCtrls, Animate, StdCtrls, RXSpin, RXDice, SpeedBar, OleCtnrs, PicClip;

type
TForm1 = class(TForm)
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
N7: TMenuItem;
N8: TMenuItem;
N9: TMenuItem;
N10: TMenuItem;
N11: TMenuItem;
N12: TMenuItem;
N13: TMenuItem;
Panel1: TPanel;
SpeedButton1: TSpeedButton;
RxLabel1: TRxLabel;
Bevel1: TBevel;
SpeedButton7: TSpeedButton;
StatusBar1: TStatusBar;
ProgressBar1: TProgressBar;
N14: TMenuItem;
N4: TMenuItem;
RxLabel2: TRxLabel;
Bevel2: TBevel;
Label1: TLabel;
SpeedButton8: TSpeedButton;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
N15: TMenuItem;
SpeedButton5: TSpeedButton;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
Label13: TLabel;
Label14: TLabel;
procedure SpeedButton4Click(Sender: TObject);
procedure SpeedButton5Click(Sender: TObject);
procedure N10Click(Sender: TObject);
procedure N13Click(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure N12Click(Sender: TObject);
procedure N8Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure SpeedButton8Click(Sender: TObject);
procedure SpeedButton7Click(Sender: TObject);
procedure FormOnClic(Sender: TObject);
procedure FormClick(Sender: TObject);
private
procedure DisplayHint(Sender: TObject);
{ Private declarations }
public
{ Public declarations }
protected
Procedure CreateParams(var Params: TCreateParams); override;
end;

var
Form1: TForm1;

implementation

uses SVDal, About2, scheme,math;

{$R *.DFM}

Procedure TForm1.CreateParams(var Params: TCreateParams);
Begin
Inherited CreateParams(Params);
Params.Style := Params.Style and not (WS_MAXIMIZEBOX or WS_THICKFRAME);
End;


procedure TForm1.SpeedButton4Click(Sender: TObject);
begin
SetVar.ShowModal;
end;

procedure TForm1.SpeedButton5Click(Sender: TObject);
begin
{ SetConst:=TSetCVonst.Create(Application)}
iData.di:=125;
iData.d1:=88;
iData.d2:=72;
iData.d3:=40;
iData.d4:=12;
iData.dpr:=1;
iData.dnam:=8;
iData.dmagr:=100;
iData.res:=1.5;
iData.sopr:=1.2;
iData.time:=10;
iData.sec:=2;
iData.num:=4;
SpeedButton1.Enabled:=TRUE;
SpeedButton7.Enabled:=TRUE;
N8.Enabled:=TRUE;
N14.Enabled:=TRUE;
ProgressBar1.Position:=0;
Label4.Caption:='0';

end;

procedure TForm1.N10Click(Sender: TObject);

begin
SetVar.ShowModal;
end;


procedure TForm1.N13Click(Sender: TObject);
var userResponse : integer;
begin
userResponse := Application.MessageBox('Программа Terra предназначена для произв'+
'едения теплового и электрического расчета нагревателя пирогенной горелки','О программе',MB_OK+
MB_ICONINFORMATION+MB_SYSTEMMODAL);
end;

procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
iData.di:=0;
iData.d1:=0;
iData.d2:=0;
iData.d3:=0;
iData.d4:=0;
iData.dpr:=0;
iData.dnam:=0;
iData.dmagr:=0;
iData.res:=0 ;
iData.sopr:=0;
iData.time:=0;
iData.sec:=0;
iData.num:=0;
SpeedButton1.Enabled:=FALSE;
SpeedButton7.Enabled:=FALSE;
N8.Enabled:=FALSE;
N14.Enabled:=FALSE;
ProgressBar1.Position:=0;
Label4.Caption:='0';
Label4.Caption:='0';
Label3.Caption:='N/D';
Label8.Caption:='N/D';
Label10.Caption:='N/D';
Label12.Caption:='N/D';
Label14.Caption:='N/D';


end;

procedure TForm1.N12Click(Sender: TObject);
begin
Form2.ShowModal;
end;

procedure TForm1.N8Click(Sender: TObject);
begin
Form1.SpeedButton1Click(Form1);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
Application.OnHint:=DisplayHint;
end;

procedure TForm1.DisplayHint(Sender: TObject);
begin
StatusBar1.SimpleText:=Application.Hint;
end;
procedure TForm1.N2Click(Sender: TObject);
begin
Close;
end;


procedure TForm1.SpeedButton8Click(Sender: TObject);
begin
Form3.Show;
end;

{==============================================================}
procedure TForm1.SpeedButton7Click(Sender: TObject);

var
U,R,l,powerRes,powerH,powerO:double;
function GetRe(w,l,v:double):double;
begin
GetRe:= w*l/v;
end;

function GettGsr(tst,tin,tout:double):double;
begin
GettGsr:= tst-((tout-tin)/ln((tst-tin)/(tst-tout)));
end;
{===============================================================}

procedure HDefineTemp(var powerH:double);
const
roH: double =0.4;
laH: double =387E-3;
vH: double =1;
CpH: double =14655;
G: double =2.8E-5;
var
F,tHsten,alpha,Nu,Qst,Qg,Qpot,Pe:double;

begin
tHsten:=801;
F:=pi*iData.d3*iData.dmagr*1E-6;
Pe:=4*G*roH*CpH*1000/(pi*(iData.d3-iData.d4)*laH);
If Pe*(iData.d3-iData.d4)/iData.dmagr>12
then Nu:= 1.61*Power((Pe*(iData.d3-iData.d4)/iData.dmagr),1/3)
else Nu:= 3.66;
alpha:=Nu*laH*1000/(iData.d3-iData.d4);
repeat
Qst:=alpha*F*(tHsten-GettGsr(tHsten,20,800));
Qg:=CpH*roH*G*(800-20);
Qpot:=2*pi*0.15*(tHsten-30)*iData.dmagr*1E-3/ln(iData.di/iData.d3);
tHSten:=tHsten+0.5;
until (Qst>(Qg+Qpot));
powerH:=Qst;
end;


{=====================================================================}
procedure ODefineTemp(var powerO:double);

const
roO: double =0.6;
laO: double =52E-3;
vO: double =1;
CpO: double =754;
G: double =1.2E-4;
var
F,tOsten,alpha,Nu,Qst,Qg,Qpot,Pe:double;

begin
tOsten:=801;
F:=pi*iData.d2*iData.dmagr*1E-6;
Pe:=4*G*roO*CpO*1000/(pi*(iData.d1-iData.d2)*laO);
If Pe*(iData.d1-iData.d2)/iData.dmagr>70
then Nu:= 1.85*Power((Pe*(iData.d1-iData.d2)/iData.dmagr),1/3)
else Nu:= 7.6;
alpha:=Nu*laO*1000/(iData.d1-iData.d2);
repeat
Qst:=alpha*F*(tOsten-GettGsr(tOsten,20,800));
Qg:=CpO*roO*G*(800-20);
Qpot:=2*pi*0.15*(tOsten-30)*iData.dmagr*1E-3/ln(iData.di/iData.d1);
tOSten:=tOsten+0.5;
until (Qst>(Qg+Qpot));
powerO:=Qst;
end;
begin

ODefineTemp(powerO);
ProgressBar1.Position:=50;
Label4.Caption:='50';
HDefineTemp(powerH);
ProgressBar1.Position:=100;
Label4.Caption:='100';
powerRes:=powerO+powerH+3450/iData.time;
Label3.Caption:=IntToStr(Ceil(powerRes));
l:=idata.sec*idata.num*(idata.dmagr/idata.res)*pi*idata.dnam*1E-1;
Label8.Caption:=FloatToStr((round(powerRes*10/
(l*pi*iData.dpr*1E-1)))/10);
R:=round(4*idata.sopr*l/
(pi*idata.dpr*idata.dpr*idata.sec))/10;
Label10.Caption:=FloatToStr(R);
U:=round(Sqrt(powerRes*R/2));
Label12.Caption:=FloatToStr(U);
Label14.Caption:=FloatToStr(round(U*10/R)/10);
{Label6.Font.Color:=clRed;}
end;
procedure TForm1.FormOnClic(Sender: TObject);
begin
Application.MessageBox('Не щелкай по пустому месту','Справка',MB_OK);
end;

procedure TForm1.FormClick(Sender: TObject);
begin
Application.MessageBox('Не щелкайте по пустому месту!','Подсказка',MB_OK);
end;

end.

Соседние файлы в папке TERRA