⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 setparaunit.pas

📁 基于高速铁路周边电动势计算的关键
💻 PAS
字号:
unit SetparaUnit;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons, ExtCtrls,IniFiles;

type
  TSetparaForm = class(TForm)
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    bvl1: TBevel;
    lbl1: TLabel;
    lbl6: TLabel;
    grp1: TGroupBox;
    rb1: TRadioButton;
    rb2: TRadioButton;
    grp2: TGroupBox;
    rb3: TRadioButton;
    rb4: TRadioButton;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    Edit5: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Bevel1: TBevel;
    Bevel2: TBevel;
    Bevel3: TBevel;
    Bevel4: TBevel;
    Edit1: TComboBox;
    grp3: TGroupBox;
    rb5: TRadioButton;
    rb6: TRadioButton;
    rb7: TRadioButton;
    edt1: TEdit;
    lbl2: TLabel;
    lbl3: TLabel;
    procedure BitBtn2Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  SetparaForm: TSetparaForm;

implementation

uses GlobalVarDefs, Main, ShowDrawUnit;

{$R *.dfm}

procedure TSetparaForm.BitBtn2Click(Sender: TObject);
begin
 Close;
end;

procedure TSetparaForm.FormCreate(Sender: TObject);
var
  Ini: TIniFile;
  FileName:string;
begin
  Ini := TIniFile.Create(ChangeFileExt( Application.ExeName, '.INI' ));
  FileName:=ChangeFileExt( Application.ExeName, '.INI' );
    try
    Edit1.Text:=Ini.ReadString( 'SysSet', 'rat'  ,  '50' );
    Edit2.Text:=Ini.ReadString( 'SysSet', 'outR' ,  '1' );
    Edit3.Text:=Ini.ReadString( 'SysSet', 'inR'  ,  '1' );
    Edit4.Text:=Ini.ReadString( 'SysSet', 'sideT',  '1' );
    Edit5.Text:=Ini.ReadString( 'SysSet', 'K'    ,  '1' );
    edt1.Text := Ini.ReadString('SysSet', 'AddRedValue', '60');

    rb1.Checked:=Ini.ReadBool('SysSet', 'SingTral', True ); //1是单线铁路;0是复线铁路
    rb3.Checked:=Ini.ReadBool('SysSet', 'RunState', True ); //1正常状态;0短路状态

    rb5.Checked:=Ini.ReadBool('SysSet', 'DK', False );
    rb6.Checked:=Ini.ReadBool('SysSet', 'CK', True );
    rb7.Checked:=Ini.ReadBool('SysSet', 'AK', False );



 if rb1.Checked=False then
    rb2.Checked:=True
    else
    rb2.Checked:=False;
 if rb3.Checked=False then
    rb4.Checked:=True
    else
    rb4.Checked:=False;
  finally
    Ini.Free;
  end;
end;

procedure TSetparaForm.BitBtn1Click(Sender: TObject);
var
  Ini: TIniFile;
  a1,a2,a3,a4:Single;
  i:Integer;
begin

  try
     StrToFloat(Trim(Edit1.Text));
    except
       Application.MessageBox('参数输入有误,应该是数字!', '错误', MB_OK +
         MB_ICONSTOP);
       Edit1.SetFocus;
       Exit;
      end;
      try
     StrToFloat(Trim(edt1.Text));
    except
       Application.MessageBox('参数输入有误,应该是数字!', '错误', MB_OK +
         MB_ICONSTOP);
       edt1.SetFocus;
       Exit;
      end;
   try
     StrToFloat(Trim(Edit2.Text));
    except
       Application.MessageBox('参数输入有误,应该是数字!', '错误', MB_OK +
         MB_ICONSTOP);
       Edit2.SetFocus;
       Exit;
      end;
    try
     StrToFloat(Trim(Edit3.Text));
    except
       Application.MessageBox('参数输入有误,应该是数字!', '错误', MB_OK +
         MB_ICONSTOP);
       Edit3.SetFocus;
       Exit;
      end;

    try
     StrToFloat(Trim(Edit4.Text));
    except
       Application.MessageBox('参数输入有误,应该是数字!', '错误', MB_OK +
         MB_ICONSTOP);
       Edit4.SetFocus;
       Exit;
      end;

    try
     StrToFloat(Trim(Edit5.Text));
    except
       Application.MessageBox('参数输入有误,应该是数字!', '错误', MB_OK +
         MB_ICONSTOP);
       Edit5.SetFocus;
       Exit;
      end;

   if(StrToFloat(Trim(Edit2.Text))<0) or (StrToFloat(Trim(Edit2.Text))>1) then
      begin
         if Application.MessageBox('参数值应在0-1之间,是否继续?', '提示',
           MB_YESNO + MB_ICONQUESTION) = IDNO then
         begin
           Edit2.SetFocus;
           Exit;
         end;
        end;
    if(StrToFloat(Trim(Edit3.Text))<0) or (StrToFloat(Trim(Edit3.Text))>1) then
      begin
         if Application.MessageBox('参数值应在0-1之间,是否继续?', '提示',
           MB_YESNO + MB_ICONQUESTION) = IDNO then
         begin
           Edit3.SetFocus;
           Exit;
         end;
        end;
    if(StrToFloat(Trim(Edit4.Text))<0) or (StrToFloat(Trim(Edit4.Text))>1) then
      begin
         if Application.MessageBox('参数值应在0-1之间,是否继续?', '提示',
           MB_YESNO + MB_ICONQUESTION) = IDNO then
         begin
           Edit4.SetFocus;
           Exit;
         end;
        end;
    if(StrToFloat(Trim(Edit5.Text))<0) or (StrToFloat(Trim(Edit5.Text))>1) then
      begin
         if Application.MessageBox('参数值应在0-1之间,是否继续?', '提示',
           MB_YESNO + MB_ICONQUESTION) = IDNO then
         begin
           Edit5.SetFocus;
           Exit;
         end;
        end;
   if Application.MessageBox('设置将被修改,确认要修改参数?', '提示',
    MB_OKCANCEL + MB_ICONINFORMATION) = IDCANCEL then
  begin
    Exit;
  end;

  Ini := TIniFile.Create( ChangeFileExt( Application.ExeName, '.INI' ) );
  try
    Ini.WriteString('SysSet', 'rat'   , Edit1.Text);
    Ini.WriteBool('SysSet', 'SingTral',rb1.Checked);
    Ini.WriteBool('SysSet', 'RunState',rb3.Checked);

    rPara.SingTral  :=  rb1.Checked               ;
    rPara.RunState  :=  rb3.Checked               ;
    rPara.rat       :=  StrToInt(Trim(Edit1.Text));

    Ini.WriteString('SysSet', 'outR'   , Edit2.Text);
    Ini.WriteString('SysSet', 'inR'   , Edit3.Text);
    Ini.WriteString('SysSet', 'sideT' , Edit4.Text);
    Ini.WriteString('SysSet', 'K'     , Edit5.Text);
    Ini.WriteString('SysSet', 'AddRedValue'     , edt1.Text);

    Ini.WriteBool('SysSet', 'DK'     , rb5.Checked);
    Ini.WriteBool('SysSet', 'CK'     , rb6.Checked);
    Ini.WriteBool('SysSet', 'AK'     , rb7.Checked);

    AddRedValue:=StrToInt(Trim(edt1.Text));

    if rb5.Checked then
       StrXUnite:= 'DK';
    if rb6.Checked  then
       StrXUnite:= 'CK';
    if rb7.Checked then
       StrXUnite:= 'AK';

    a1:= StrToFloat(Edit2.Text) ;
    a2:= StrToFloat(Edit3.Text) ;
    a3:= StrToFloat(Edit4.Text) ;
    a4:= StrToFloat(Edit5.Text) ;
    with MainForm.TabSet1 do
      begin
        if  Tabs.Count>0 then begin
     for i:=0 to Tabs.Count-1 do
          if Tabs.Strings[i]='电动势图' then
              ShowDrawForm.FormShow(Self);
          end;
      end;
    rE_Infor.E_K := a1*a2*a3*a4;
    rE_Infor.E_w := rPara.rat;
  finally
    Ini.Free;
  end;
  Close;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -