📄 setparaunit.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 + -