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

LUCKY / TERRA / TERRA

.PAS
Скачиваний:
17
Добавлен:
16.04.2013
Размер:
8 Кб
Скачать
☆
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