📄 unit7.pas
字号:
unit Unit7;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, BusinessSkinForm, StdCtrls, Mask, bsSkinBoxCtrls, bsSkinCtrls,
bsMessages, bsSkinShellCtrls;
type
Tpara_set = class(TForm)
bsBusinessSkinForm1: TbsBusinessSkinForm;
bsSkinMessage1: TbsSkinMessage;
bsSkinOpenDialog1: TbsSkinOpenDialog;
bsSkinSaveDialog1: TbsSkinSaveDialog;
bsSkinPanel1: TbsSkinPanel;
bsSkinStdLabel2: TbsSkinStdLabel;
bsSkinStdLabel1: TbsSkinStdLabel;
bsSkinStdLabel3: TbsSkinStdLabel;
bsSkinStdLabel5: TbsSkinStdLabel;
bsSkinStdLabel6: TbsSkinStdLabel;
bsSkinEdit6: TbsSkinEdit;
bsSkinEdit5: TbsSkinEdit;
bsSkinEdit3: TbsSkinEdit;
bsSkinEdit2: TbsSkinEdit;
bsSkinEdit1: TbsSkinEdit;
bsSkinTrackBar1: TbsSkinTrackBar;
bsSkinTrackBar2: TbsSkinTrackBar;
bsSkinButton1: TbsSkinButton;
bsSkinButton2: TbsSkinButton;
bsSkinButton3: TbsSkinButton;
bsSkinSpeedButton3: TbsSkinSpeedButton;
bsSkinSpeedButton2: TbsSkinSpeedButton;
bsSkinSpeedButton1: TbsSkinSpeedButton;
bsSkinStdLabel4: TbsSkinStdLabel;
bsSkinEdit4: TbsSkinEdit;
bsSkinListBox1: TbsSkinListBox;
bsSkinStdLabel7: TbsSkinStdLabel;
procedure bsSkinSpeedButton1Click(Sender: TObject);
procedure bsSkinSpeedButton2Click(Sender: TObject);
procedure bsSkinSpeedButton3Click(Sender: TObject);
procedure bsSkinButton2Click(Sender: TObject);
procedure bsSkinButton1Click(Sender: TObject);
procedure bsSkinButton3Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure bsSkinTrackBar1Change(Sender: TObject);
procedure bsSkinTrackBar2Change(Sender: TObject);
//检查参数是否填写完整
function CheckNull:boolean;
private
{ Private declarations }
public
{ Public declarations }
end;
var
para_set: Tpara_set;
implementation
uses unit1;//包含主界面单元
{$R *.dfm}
procedure Tpara_set.bsSkinSpeedButton1Click(Sender: TObject);
begin
if self.bsSkinEdit4.Text<>'' then
begin
self.bsSkinListBox1.Items.Add(self.bsSkinEdit4.Text);
self.bsSkinEdit4.Text:='';
end
else
self.bsSkinMessage1.MessageDlg('请输入发送主机地址!',mtcustom,[mbyes],0);
end;
procedure Tpara_set.bsSkinSpeedButton2Click(Sender: TObject);
begin
self.bsSkinListBox1.Items.Delete(self.bsSkinListBox1.ItemIndex);
end;
procedure Tpara_set.bsSkinSpeedButton3Click(Sender: TObject);
begin
self.bsSkinListBox1.Items.Clear;
end;
procedure Tpara_set.bsSkinButton2Click(Sender: TObject);
var input:textfile;
openfilename:string;
i:integer;
str:string;
begin
if self.bsSkinOpenDialog1.Execute then
begin
//检查从对话框返回的文件名是否包含后缀.par,确保包含后缀
if ansipos('.par',self.bsSkinOpenDialog1.FileName)=0 then
openfilename:=self.bsSkinOpenDialog1.FileName+'.par'
else
openfilename:=self.bsSkinOpenDialog1.FileName;
//如果文件存在则读取数据
if fileexists(openfilename) then
begin
assignfile(input,openfilename);
reset(input);
readln(input,str);
self.bsSkinEdit1.Text:=str;//发送数据包大小
readln(input,str);
self.bsSkinEdit2.Text:=str;//接收端主机地址
readln(input,str);
self.bsSkinEdit3.Text:=str;//接收端主机端口
readln(input,str);
self.bsSkinEdit5.Text:=str;//发送速率
readln(input,str);
self.bsSkinEdit6.Text:=str;//统计速率
self.bsSkinListBox1.Items.Clear;
readln(input,str);
while (str<>'END') do
begin
self.bsSkinListBox1.Items.Add(str);
readln(input,str);
end;
closefile(input);
end
else
self.bsSkinMessage1.MessageDlg('文件不存在!',mtcustom,[mbyes],0);
end;
end;
procedure Tpara_set.bsSkinButton1Click(Sender: TObject);
var output:textfile;
savefilename:string;
i:integer;
begin
if self.CheckNull=true then
begin
//*************************
if self.bsSkinSaveDialog1.Execute then
begin
//检查从对话框返回的文件名是否包含后缀.par
if ansipos('.par',self.bsSkinSaveDialog1.FileName)=0 then
savefilename:=self.bsSkinSaveDialog1.FileName+'.par'
else
savefilename:=self.bsSkinSaveDialog1.FileName;
//检查文件是否已经存在
if fileexists(savefilename) then
begin
self.bsSkinMessage1.MessageDlg('该文件已经存在!',mtcustom,[mbyes],0);
end
else
begin
//如果不存在同名文件的话,将参数写入
assignfile(output,savefilename);
rewrite(output);
writeln(output,self.bsSkinEdit1.Text); //发送数据包大小
writeln(output,self.bsSkinEdit2.Text); //接收端主机地址
writeln(output,self.bsSkinEdit3.Text); //接收端主机端口
writeln(output,self.bsSkinEdit5.Text); //发送速率
writeln(output,self.bsSkinEdit6.Text); //统计速率
//发送端主机地址
for i:=0 to self.bsSkinListBox1.Items.Count-1 do
writeln(output,self.bsSkinListBox1.Items.Strings[i]);
//结束标志
writeln(output,'END');
closefile(output);
end;
end;
//*************************
end;
end;
procedure Tpara_set.bsSkinButton3Click(Sender: TObject);
var output:textfile;
i:integer;
begin
if self.CheckNull=true then
begin
//*************************
assignfile(output,'mysettings.ini');
rewrite(output);
writeln(output,self.bsSkinEdit1.Text); //发送数据包大小
writeln(output,self.bsSkinEdit2.Text); //接收端主机地址
writeln(output,self.bsSkinEdit3.Text); //接收端主机端口
writeln(output,self.bsSkinEdit5.Text); //发送速率
writeln(output,self.bsSkinEdit6.Text); //统计速率
//发送端主机地址
for i:=0 to self.bsSkinListBox1.Items.Count-1 do
writeln(output,self.bsSkinListBox1.Items.Strings[i]);
//结束标志
writeln(output,'END');
closefile(output);
if self.bsSkinMessage1.MessageDlg('您确定要这样设置吗?',mtConfirmation, [mbYes, mbNo],0)=mrYes then
begin
//设置完成后使得发送按钮可以按,同时隐藏设置窗体
main.N2.Enabled:=true;
//将参数列入main中的memo
main.bsSkinMemo1.Lines.Add('************************************************************************************************************');
main.bsSkinMemo1.Lines.Add('您设置的参数如下:');
main.bsSkinMemo1.Lines.Add('发送数据包大小:'+self.bsSkinEdit1.Text);
main.bsSkinMemo1.Lines.Add('接收端主机地址:'+self.bsSkinEdit2.Text);
main.bsSkinMemo1.Lines.Add('接收端主机端口:'+self.bsSkinEdit3.Text);
main.bsSkinMemo1.Lines.Add('发送速率:'+self.bsSkinEdit5.Text);
main.bsSkinMemo1.Lines.Add('统计速率:'+self.bsSkinEdit6.Text);
main.bsSkinMemo1.Lines.Add('您一共设置了'+inttostr(self.bsSkinListBox1.Items.Count)+'个发送端!');
for i:=0 to self.bsSkinListBox1.Items.Count-1 do
main.bsSkinMemo1.Lines.Add('发送端主机'+inttostr(i+1)+'的地址:'+self.bsSkinListBox1.Items.Strings[i]);
self.Hide;
end;
//*************************
end;
end;
procedure Tpara_set.FormShow(Sender: TObject);
var input:textfile;
i:integer;
str:string;
begin
if fileexists('mysettings.ini') then
begin
assignfile(input,'mysettings.ini');
reset(input);
readln(input,str);
self.bsSkinEdit1.Text:=str;//发送数据包大小
readln(input,str);
self.bsSkinEdit2.Text:=str;//接收端主机地址
readln(input,str);
self.bsSkinEdit3.Text:=str;//接收端主机端口
readln(input,str);
self.bsSkinEdit5.Text:=str;//发送速率
self.bsSkinTrackBar1.Value:=strtoint(str);
readln(input,str);
self.bsSkinEdit6.Text:=str;//统计速率
self.bsSkinTrackBar2.Value:=strtoint(str)-100;
self.bsSkinListBox1.Items.Clear;
readln(input,str);
while (str<>'END') do
begin
self.bsSkinListBox1.Items.Add(str);
readln(input,str);
end;
closefile(input);
end
else
self.bsSkinMessage1.MessageDlg('未找到设置文件,将载入默认设置!',mtcustom,[mbyes],0);
end;
procedure Tpara_set.bsSkinTrackBar1Change(Sender: TObject);
begin
self.bsSkinEdit5.Text:=inttostr(self.bsSkinTrackBar1.Value);
end;
procedure Tpara_set.bsSkinTrackBar2Change(Sender: TObject);
begin
self.bsSkinEdit6.Text:=inttostr(self.bsSkinTrackBar2.Value+100);
end;
//检查各项参数是否填写完整
function Tpara_set.CheckNull:boolean;
begin
if self.bsSkinEdit1.Text='' then
begin
self.bsSkinMessage1.MessageDlg('参数填写不完整!',mtcustom,[mbyes],0);
result:=false;
end
else if self.bsSkinEdit2.Text='' then
begin
self.bsSkinMessage1.MessageDlg('参数填写不完整!',mtcustom,[mbyes],0);
result:=false;
end
else if self.bsSkinEdit3.Text='' then
begin
self.bsSkinMessage1.MessageDlg('参数填写不完整!',mtcustom,[mbyes],0);
result:=false;
end
else if self.bsSkinEdit5.Text='' then
begin
self.bsSkinMessage1.MessageDlg('参数填写不完整!',mtcustom,[mbyes],0);
result:=false;
end
else if self.bsSkinEdit6.Text='' then
begin
self.bsSkinMessage1.MessageDlg('参数填写不完整!',mtcustom,[mbyes],0);
result:=false;
end
else if self.bsSkinListBox1.Items.Count=0 then
begin
self.bsSkinMessage1.MessageDlg('参数填写不完整!',mtcustom,[mbyes],0);
result:=false;
end
else if strtoint(self.bsSkinEdit1.Text)>2000 then
begin
self.bsSkinMessage1.MessageDlg('数据包大小设置不应超过2000!',mtcustom,[mbyes],0);
result:=false;
end
else
result:=true;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -