📄 unit1.pas
字号:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ExtCtrls, ComCtrls, ToolWin, Menus, jpeg, Buttons, StdCtrls, Db, DBTables,
ImgList;
type
Tmain = class(TForm)
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
ToolBar1: TToolBar;
Panel1: TPanel;
Image2: TImage;
Image3: TImage;
StatusBar1: TStatusBar;
Image1: TImage;
SpeedButton1: TSpeedButton;
SpeedButton2: TSpeedButton;
SpeedButton3: TSpeedButton;
SpeedButton4: TSpeedButton;
SpeedButton5: TSpeedButton;
SpeedButton6: TSpeedButton;
SpeedButton7: TSpeedButton;
SpeedButton8: TSpeedButton;
SpeedButton9: TSpeedButton;
SpeedButton10: TSpeedButton;
SpeedButton11: TSpeedButton;
SpeedButton12: TSpeedButton;
SpeedButton13: TSpeedButton;
SpeedButton14: TSpeedButton;
SpeedButton15: TSpeedButton;
SpeedButton16: TSpeedButton;
SpeedButton17: TSpeedButton;
SpeedButton18: TSpeedButton;
SpeedButton19: TSpeedButton;
SpeedButton20: TSpeedButton;
SpeedButton21: TSpeedButton;
SpeedButton22: TSpeedButton;
SpeedButton23: TSpeedButton;
SpeedButton24: TSpeedButton;
SpeedButton25: TSpeedButton;
SpeedButton26: TSpeedButton;
Panel2: TPanel;
Image4: TImage;
ToolButton1: TToolButton;
N4: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
N7: TMenuItem;
N8: TMenuItem;
N9: TMenuItem;
N10: TMenuItem;
N11: TMenuItem;
N20s1: TMenuItem;
N30s1: TMenuItem;
N30s2: TMenuItem;
N12: TMenuItem;
N13: TMenuItem;
N14: TMenuItem;
N15: TMenuItem;
N101: TMenuItem;
N16: TMenuItem;
N17: TMenuItem;
N18: TMenuItem;
N19: TMenuItem;
N20: TMenuItem;
N21: TMenuItem;
N22: TMenuItem;
N23: TMenuItem;
N24: TMenuItem;
ToolButton2: TToolButton;
ToolButton3: TToolButton;
ToolButton4: TToolButton;
ToolButton5: TToolButton;
ToolButton6: TToolButton;
ToolButton8: TToolButton;
ToolButton9: TToolButton;
ToolButton10: TToolButton;
ToolButton11: TToolButton;
ToolButton12: TToolButton;
ToolButton13: TToolButton;
ToolButton14: TToolButton;
ToolButton15: TToolButton;
ToolButton16: TToolButton;
ToolButton17: TToolButton;
N25: TMenuItem;
N26: TMenuItem;
Timer1: TTimer;
N27: TMenuItem;
N10s1: TMenuItem;
N20s2: TMenuItem;
Table1: TTable;
TimerPhone: TTimer;
N28: TMenuItem;
N29: TMenuItem;
N30: TMenuItem;
ImageList1: TImageList;
ImageList2: TImageList;
PopupMenu1: TPopupMenu;
N31: TMenuItem;
N32: TMenuItem;
N33: TMenuItem;
N34: TMenuItem;
N35: TMenuItem;
Label1: TLabel;
clock: TTimer;
Database1: TDatabase;
ToolButton7: TToolButton;
ToolButton18: TToolButton;
ToolButton19: TToolButton;
N110: TMenuItem;
procedure FormCreate(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure N10s1Click(Sender: TObject);
procedure N20s2Click(Sender: TObject);
procedure N30s2Click(Sender: TObject);
procedure N4Click(Sender: TObject);
procedure N10Click(Sender: TObject);
procedure N6Click(Sender: TObject);
procedure N7Click(Sender: TObject);
procedure N16Click(Sender: TObject);
procedure N27Click(Sender: TObject);
procedure N17Click(Sender: TObject);
procedure N18Click(Sender: TObject);
procedure N19Click(Sender: TObject);
procedure N20Click(Sender: TObject);
procedure N21Click(Sender: TObject);
procedure N22Click(Sender: TObject);
procedure N26Click(Sender: TObject);
procedure TimerPhoneTimer(Sender: TObject);
procedure N23Click(Sender: TObject);
procedure N24Click(Sender: TObject);
procedure ToolButton1Click(Sender: TObject);
procedure ToolButton2Click(Sender: TObject);
procedure ToolButton3Click(Sender: TObject);
procedure ToolButton5Click(Sender: TObject);
procedure ToolButton6Click(Sender: TObject);
procedure ToolButton9Click(Sender: TObject);
procedure ToolButton10Click(Sender: TObject);
procedure ToolButton11Click(Sender: TObject);
procedure ToolButton13Click(Sender: TObject);
procedure ToolButton14Click(Sender: TObject);
procedure ToolButton17Click(Sender: TObject);
procedure N29Click(Sender: TObject);
procedure clockTimer(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure N110Click(Sender: TObject);
private
// function ring1(n:integer):boolean;{ Private declarations }
public
FloatNum,FloatFlag:integer;
{ Public declarations }
end;
function ring(n:integer):boolean;
procedure readdata(i:integer);
var
main: Tmain;
Getdata:array[1..4] of real; //远程录入数据;
flagmonth,flagyear:integer;
ModemStatus:array [1..30] of boolean;
modemflag:integer;
implementation
uses unit2,unit3,unit4,unit5,unit6,unit7,unit8,unit9, Unit10, Unit11,
Unit15, Unit16, Unit12,unit17;
{$R *.DFM}
procedure readdata(i:integer);
var
j:integer;
begin// 利用Config产生随机数据
datamd.tableconfig.open;
datamd.TableConfig.First;
datamd.TableConfig.MoveBy(i-1);
with datamd.TableConfig do
begin
for j := 1 to 4 do
begin
getdata[j]:=fields[2*j].Asfloat+abs(random(105)/100*(fields[2*j].AsFloat-fields[2*j-1].AsFloat));
end;//数据生成 /105说明有超标值/
end;
end;
function ring(n:integer):boolean;
var
m:boolean;
begin
result:=true; //模拟拨号,若成功则返回真;
end;
procedure Tmain.FormCreate(Sender: TObject);
var
pth:string; //获取数据库的路径,利用Database连接数据库
begin
pth:=getcurrentdir; //获取程序当前目录
speedbutton1.Hint:=' 市精工集团股份有限公司';
main.Database1.Connected:=false; //断开Database的数据库连接
main.Database1.Params.Add('path='+pth+'\data');// 得到数据库的目录
main.Database1.Connected:=true;//恢复数据库的连接
modemflag:=0;
flagmonth:=0;
flagYear:=0;
main.Timer1.Enabled:=false;//关闭监测时钟
floatNum:=26;
floatFlag:=1;
end;
procedure Tmain.Timer1Timer(Sender: TObject);
var
i:integer;
begin
readdata(floatflag); //获取实时数据
//运行时间显示
main.StatusBar1.Panels[1].Text:='正在运行';
datamd.TableReal.open;
datamd.TableReal.First;
datamd.TableReal.MoveBy(floatflag-1);
with datamd.TableReal do//对实时表进行修改
begin
edit;
setfields([nil,date,time,getdata[1],getdata[2],getdata[3],getdata[4]]);
post;
realgrid.Table1.open;
realgrid.Table1.Refresh;
(*超标纪录的操作*)
datamd.TableConfig.open;
datamd.TableConfig.First;
datamd.TableConfig.MoveBy(floatflag-1);
with datamd.TableConfig do //判断数据是否超标
begin
if (getdata[1]>fields[1].Asfloat )or (getdata[2]>fields[3].AsFloat) or (getdata[3]>fields[5].asFloat)
then
begin
dataMD.TableExceed.open;
dataMD.TableExceed.Appendrecord([floatflag,date,time,getdata[1],getdata[2],getdata[3],getdata[4]]);
beep;
(*可以提示*)
end;
end;//数据生成
end;
(** //进行日数据写入**)
with dataMD.tableday do
begin
active:=false;
TableName:='Day_'+inttostr(floatflag)+'.db';
active:=true;
if recordcount>=2000 then// 设置数据库的容量
begin
ControlsDisabled;//使控件失效
first;
for i:=1 to 10 do
begin
delete;
end;
end;
EnableControls;
AppendRecord([nil,date,time,getdata[1],getdata[2],getdata[3],getdata[4]]);
end;
(***月数据的操作****)
if flagmonth=6 then
begin
with dataMD.tableMonth do
begin
active:=false;
TableName:='month_'+inttostr(floatflag)+'.db';
active:=true;
if recordcount>=2000 then// 设置数据库的容量
begin
ControlsDisabled;//使控件失效
first;
for i:=1 to 10 do
begin
delete;
next;
end;
end;
EnableControls;
AppendRecord([nil,date,time,getdata[1],getdata[2],getdata[3],getdata[4]]);
if floatflag=floatnum then flagmonth:=0;//设标志回0
end;
end;
(*****年数据的操作****)
if flagyear=36 then
begin
with dataMD.tableYear do
begin
active:=false;
TableName:='year_'+inttostr(floatflag)+'.db';
active:=true;
if recordcount>=2000 then// 设置数据库的容量
begin
ControlsDisabled;//使控件失效
first;
for i:=1 to 10 do
begin
delete;
next;
end;
end;
EnableControls;
AppendRecord([nil,date,time,getdata[1],getdata[2],getdata[3],getdata[4]]);
if floatflag=floatnum then flagyear:=0;
end;
end;
inc(floatflag);
realgrid.Table1.next; //为了方便实时显示。
if floatflag>floatnum then//若循环完毕,重新拨号。
begin
flagyear:=flagyear+1;
flagmonth:=flagmonth+1;
floatflag:=1;
realgrid.Table1.First;
end;
//模拟数据采集
end;
procedure Tmain.N2Click(Sender: TObject);
begin
timer1.Enabled:=true;//拨号
end;
procedure Tmain.N10s1Click(Sender: TObject);
begin
timer1.Interval:=1000*1; //设置读数时间
end;
procedure Tmain.N20s2Click(Sender: TObject);
begin
timer1.Interval:=1000*20;
end;
procedure Tmain.N30s2Click(Sender: TObject);
begin
timer1.Interval:=1000*30;
end;
procedure Tmain.N4Click(Sender: TObject);
begin
timer1.Enabled:=false;//中止监测
main.StatusBar1.Panels[1].Text:='未运行';
end;
procedure Tmain.N10Click(Sender: TObject);
begin
photonumber.Table1.Active:=true;
photonumber.show;
end;
procedure Tmain.N6Click(Sender: TObject);
begin
close;
end;
procedure Tmain.N7Click(Sender: TObject);
begin
config.show;
end;
procedure Tmain.N16Click(Sender: TObject);
var
t:string;
begin
inputquery('待机时间','请输入待机时间',t);
timer1.Interval:=1000*round(strtofloat(t));
end;
procedure Tmain.N27Click(Sender: TObject);
begin
realpanel.Show;
end;
procedure Tmain.N17Click(Sender: TObject);
begin
realgrid.show;
end;
procedure Tmain.N18Click(Sender: TObject);
begin
realcurve.show;
end;
procedure Tmain.N19Click(Sender: TObject);
begin
realrpt.QuickRep1.Preview;
end;
procedure Tmain.N20Click(Sender: TObject);
begin
Day_data.show;
end;
procedure Tmain.N21Click(Sender: TObject);
begin
month_data.show;
end;
procedure Tmain.N22Click(Sender: TObject);
begin
year_data.show;
end;
procedure Tmain.N26Click(Sender: TObject);
begin
datamd.tablephone.active:=true;
datamd.tablephone.first;
timerphone.Enabled:=true;
end;
procedure Tmain.TimerPhoneTimer(Sender: TObject);
begin
with datamd.tablephone do //拨号测试
begin
if not eof then
begin
modemflag:=modemflag+1;
modemstatus[modemflag]:=ring(fields[2].asinteger);
case modemflag of
1:speedbutton1.Glyph.LoadFromFile('Day.bmp');
2:speedbutton2.Glyph.LoadFromFile('Day.bmp');
3:speedbutton3.Glyph.LoadFromFile('Day.bmp');
4:speedbutton4.Glyph.LoadFromFile('Day.bmp');
5:speedbutton5.Glyph.LoadFromFile('Day.bmp');
6:speedbutton6.Glyph.LoadFromFile('Day.bmp');
7:speedbutton7.Glyph.LoadFromFile('Day.bmp');
8:speedbutton8.Glyph.LoadFromFile('Day.bmp');
9:speedbutton9.Glyph.LoadFromFile('Day.bmp');
10:speedbutton10.Glyph.LoadFromFile('Day.bmp');
11:speedbutton11.Glyph.LoadFromFile('Day.bmp');
12:speedbutton12.Glyph.LoadFromFile('Day.bmp');
13:speedbutton13.Glyph.LoadFromFile('Day.bmp');
14:speedbutton14.Glyph.LoadFromFile('Day.bmp');
15:speedbutton15.Glyph.LoadFromFile('Day.bmp');
16:speedbutton16.Glyph.LoadFromFile('Day.bmp');
17:speedbutton17.Glyph.LoadFromFile('Day.bmp');
18:speedbutton18.Glyph.LoadFromFile('Day.bmp');
19:speedbutton19.Glyph.LoadFromFile('Day.bmp');
20:speedbutton20.Glyph.LoadFromFile('Day.bmp');
21:speedbutton21.Glyph.LoadFromFile('Day.bmp');
22:speedbutton22.Glyph.LoadFromFile('Day.bmp');
23:speedbutton23.Glyph.LoadFromFile('Day.bmp');
24:speedbutton24.Glyph.LoadFromFile('Day.bmp');
25:speedbutton25.Glyph.LoadFromFile('Day.bmp');
26:speedbutton26.Glyph.LoadFromFile('Day.bmp');
end;
next;
end
else
begin
main.TimerPhone.Enabled:=false;
showmessage('测试完毕!');
end;
end;
end;
procedure Tmain.N23Click(Sender: TObject);
begin
exceedgrid.show;
end;
procedure Tmain.N24Click(Sender: TObject);
begin
exceedrpt.QuickRep1.preview;
end;
procedure Tmain.ToolButton1Click(Sender: TObject);
begin
main.N2Click(sender);
end;
procedure Tmain.ToolButton2Click(Sender: TObject);
begin
main.N4Click(Sender);
end;
procedure Tmain.ToolButton3Click(Sender: TObject);
begin
close;
end;
procedure Tmain.ToolButton5Click(Sender: TObject);
begin
main.N7Click(Sender);
end;
procedure Tmain.ToolButton6Click(Sender: TObject);
begin
main.N16Click(Sender);
end;
procedure Tmain.ToolButton9Click(Sender: TObject);
begin
main.N27Click(Sender);
end;
procedure Tmain.ToolButton10Click(Sender: TObject);
begin
main.N17Click(Sender);
end;
procedure Tmain.ToolButton11Click(Sender: TObject);
begin
main.N18Click(Sender);
end;
procedure Tmain.ToolButton13Click(Sender: TObject);
begin
main.N19Click(Sender);
end;
procedure Tmain.ToolButton14Click(Sender: TObject);
begin
main.N23Click(Sender);
end;
procedure Tmain.ToolButton17Click(Sender: TObject);
begin
main.N26Click(Sender);
end;
procedure Tmain.N29Click(Sender: TObject);
begin
version.show;
end;
procedure Tmain.clockTimer(Sender: TObject);
var
timetxt:string;
begin
timetxt:='运行时间'+datetostr(date)+' '+timetostr(time);
realcurve.statusbar1.panels[1].text:=timetxt;
realgrid.statusbar1.panels[1].text:=timetxt;
config.statusbar1.panels[1].text:=timetxt;
Day_data.statusbar1.panels[1].text:=timetxt;
Day_curve.statusbar1.panels[1].text:=timetxt;
Day_data.statusbar1.panels[1].text:=timetxt;
exceedgrid.statusbar1.panels[1].text:=timetxt;
statusbar1.panels[2].text:=timetxt;
end;
procedure Tmain.FormShow(Sender: TObject);
begin
main.clock.Enabled:=true;
end;
procedure Tmain.N110Click(Sender: TObject);
begin
N101.Checked:=false;
N110.Checked:=false;
N20s1.Checked:=false;
N30s1.Checked:=false;
TMenuItem(sender).Checked:=true;
Timerphone.Interval:=TMenuItem(sender).Tag*1000;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -