📄 unit1.pas
字号:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Unit2,Unit3,
Dialogs, StdCtrls, Grids, ExtCtrls, TeeProcs, TeEngine, Chart, Series,
Buttons;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
StringGrid1: TStringGrid;
Label1: TLabel;
Edit1: TEdit;
Label2: TLabel;
Label3: TLabel;
Edit2: TEdit;
Button3: TButton;
Chart1: TChart;
Timer1: TTimer;
Series1: TLineSeries;
SpeedButton1: TSpeedButton;
CheckBox1: TCheckBox;
Edit3: TEdit;
Button4: TButton;
Button5: TButton;
Label4: TLabel;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
a:array[1..300] of integer;
S,F,sz:integer;
strng:word;
k:integer;
exit:boolean;
r:array[1..300]of word;
alarm:array [1..300] of record
swap:boolean;
N:integer;
t:word;
end;
procedure sedit;
end;
var
Form1: TForm1;
// con1,con2:tSender;
con:array[1..300] of tsender;
slp:array[1..300] of integer;
serv:tServer;
time:word;
p:integer;
implementation
procedure tForm1.sedit;
begin
// edit1.text:=s;
if exit then
begin
stringgrid1.Cells[1,k]:=inttostr(strng);
if alarm[k].swap then
begin
inc(alarm[k].N);
alarm[k].t:=alarm[k].t+strng;
if alarm[k].N>=11 then
begin
if alarm[k].t<=88 then
begin
stringgrid1.Cells[2,k]:='';
end
else
begin
stringgrid1.Cells[2,k]:='*';
end;
alarm[k].N:=0;
alarm[k].t:=0;
end
else
begin
if alarm[k].t>88 then
begin
stringgrid1.Cells[2,k]:='*';
alarm[k].N:=0;
alarm[k].t:=0;
end
end;
end
else
begin
if strng<=290 then
begin
stringgrid1.Cells[2,k]:='';
end
else
begin
stringgrid1.Cells[2,k]:='*';
end;
end;
end;
end;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
begin
p:=strtoint(edit3.Text);
// setlength(con,p+1);
// setlength(a,p+1);
for i:=1 to p do
begin
con[i]:=tSender.Create(true);
con[i].n:=i;
con[i].slp:=200;
con[i].FreeOnTerminate:=true;
con[i].Priority:=tpLower;
con[i].Resume;
sleep(10);
end;
{ con2:=tSender.Create(true);
con2.n:=2;
con2.FreeOnTerminate:=true;
con2.Priority:=tpLower;
con2.Resume;}
button1.Enabled:=false;
end;
procedure TForm1.Button2Click(Sender: TObject);
var i:integer;
begin
stringgrid1.RowCount:=p+1;
// setlength(alarm,p+1);
// setlength(slp,p+1);
for i:=1 to p do
begin
stringgrid1.Cells[0,i]:=inttostr(i);
alarm[i].swap:=false;
alarm[i].N:=0;
alarm[i].t:=0;
end;
serv:=tServer.Create(true);
serv.n:=p;
serv.FreeOnTerminate:=true;
serv.Priority:=tpLower;
serv.Resume;
timer1.Enabled:=true;
button2.Visible:=false;
button5.Visible:=true;
button5.Enabled:=true;
button2.Enabled:=false;
end;
procedure TForm1.FormCreate(Sender: TObject);
var i:integer;
begin
exit:=true;
time:=0;
s:=1;
f:=1;
sz:=100;
series1.AddXY(0,0);
stringgrid1.Cells[0,0]:='#';
stringgrid1.Cells[1,0]:='青蝠桁赅';
stringgrid1.Cells[2,0]:='!';
end;
procedure TForm1.Button3Click(Sender: TObject);
var i:integer;
begin
i:=strtoint(edit2.text);
con[i].slp:=strtoint(edit1.Text);
slp[i]:=strtoint(edit1.Text);
alarm[i].swap:=checkbox1.Checked;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
var i:integer;
s:word;
d:word;
begin
// chart1.add(strtoint(stringgrid1.Cells[1,1]));
s:=0;
for i:=1 to p do
begin
if stringgrid1.Cells[1,i]<>'' then
begin
s:=s+strtoint(stringgrid1.Cells[1,i])
end;
end;
s:=s div p;
inc(time);
series1.AddXY(time,s);
end;
procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
Series1.Clear;
series1.AddXY(0,0)
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
exit:=true;
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
exit:=false;
timer1.Enabled:=false;
end;
procedure TForm1.Button5Click(Sender: TObject);
begin
exit:=true;
timer1.Enabled:=true;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -