📄 guofuhe.pas
字号:
unit guofuhe;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, DBGrids, TComm1, StdCtrls, ExtCtrls, DB, DBTables,
DBCtrls, jpeg, ComCtrls;
type
TForm1 = class(TForm)
Panel1: TPanel;
Button1: TButton;
Comm1: TComm;
btchaxun: TButton;
bttongji: TButton;
Button4: TButton;
DBGrid1: TDBGrid;
Panel2: TPanel;
Splitter1: TSplitter;
DBGrid2: TDBGrid;
Table1: TTable;
DataSource1: TDataSource;
DataSource2: TDataSource;
Table2: TTable;
Query1: TQuery;
DSquery: TDataSource;
Button6: TButton;
Panel3: TPanel;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Timer1: TTimer;
procedure Button4Click(Sender: TObject);
procedure Comm1ReceiveData(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure btchaxunClick(Sender: TObject);
procedure bttongjiClick(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
ReceiveStr,start:string;
bytereceive:array[0..3630] of Byte;
ap:TStringList;{字符串列表变量}
ax,bx:string;
AppPath:string;
implementation
uses chaxun,tongji,HTMLHelp_Decl;
{$R *.dfm}
procedure TForm1.Button4Click(Sender: TObject);
begin
close;
end;
procedure TForm1.Comm1ReceiveData(Sender: TObject);
var
xiang,startime,maxtime,endtime,temp:string;
bufb:Byte;
PT:PByte;
sjjc:boolean;
timejc:Tdatetime;
dotpos,max,count,i:integer;
begin
if start<>'!' then
begin
start:=comm1.Input;
label3.Visible :=true ;
end
else begin
comm1.InputLen :=3624;
count:=comm1.ReadInputByte(PT);
//progressbar1.StepIt ;
for i:=0 to 3623 do
begin
bytereceive[i]:=PT^;
Inc(PT);
end;
for i:=0 to 150 do
begin
sjjc:=false;
xiang:=Chr(bytereceive[i*24+0]);
if (xiang<>'A')and (xiang<>'B') then sjjc:=true;
startime:=inttohex(bytereceive[i*24+7],2)+ '-'
+ inttohex(bytereceive[i*24+5],2)+'-'
+ inttohex(bytereceive[i*24+6],2)+' '
+inttohex(bytereceive[i*24+3],2)+':'
+inttohex(bytereceive[i*24+2],2)+':'+inttohex(bytereceive[i*24+1],2);
timejc:=strtodatetimedef(startime,0);
if timejc=0 then sjjc:=true;
max:=bytereceive[i*24+8]*256+bytereceive[i*24+9];
if max>2006 then sjjc:=true;
maxtime:=inttohex(bytereceive[i*24+16],2)+ '-'
+ inttohex(bytereceive[i*24+14],2)+'-'
+ inttohex(bytereceive[i*24+15],2)+' '
+inttohex(bytereceive[i*24+12],2)+':'
+inttohex(bytereceive[i*24+11],2)+':'+inttohex(bytereceive[i*24+10],2);
timejc:=strtodatetimedef(maxtime,0);
if timejc=0 then sjjc:=true;
endtime:=inttohex(bytereceive[i*24+23],2)+ '-'
+ inttohex(bytereceive[i*24+21],2)+'-'
+ inttohex(bytereceive[i*24+22],2)+' '
+inttohex(bytereceive[i*24+19],2)+':'
+inttohex(bytereceive[i*24+18],2)+':'+inttohex(bytereceive[i*24+17],2);
timejc:=strtodatetimedef(endtime,0);
if timejc=0 then sjjc:=true;
temp:=stringreplace(startime,'-','/',[rfreplaceall]);
temp:=copy(temp,4,5)+'/'+copy(temp,1,2)+copy(temp,9,9);
if not sjjc then
begin
query1.Close ;
query1.RequestLive :=true;
if xiang='A' then
begin
query1.DatabaseName :='ax';
query1.SQL.Text := 'select * from axiang where 开始时间 ="'+ temp+'"';
dsquery.DataSet :=table1;
end
else begin
query1.DatabaseName :='bx';
query1.SQL.Text :='select *from bxiang where 开始时间 ="'+ temp+'"';
dsquery.DataSet :=table2;
end;
query1.Open;
if query1.RecordCount <=0 then
begin
query1.Append;
query1.FieldByName('开始时间').AsDateTime:=strtodatetime(startime);
query1.FieldByName('最大值').AsFloat :=max;
query1.FieldByName('结束时间').AsDateTime:=strtodatetime(endtime);
query1.Post;
table1.Refresh;
table2.Refresh;
end;
end;
end;
label3.Visible :=false;
comm1.Free;
end;
(*buf:=comm1.Input ;
//bufb:=strtoint(buf);
ReceiveStr:=receivestr+buf;
if Pos('!',ReceiveStr)<1 then exit
else
begin
query1.Close ;
query1.RequestLive :=true;
ReceiveStr:=copy(ReceiveStr,1,Length(receivestr)-1);
dotpos:=Pos(',',ReceiveStr);
xiang:=copy(ReceiveStr,1,dotpos-1);
ReceiveStr:=copy(ReceiveStr,dotpos+1,length(ReceiveStr)-dotpos);
dotpos:=Pos(',',ReceiveStr);
startime:=copy(ReceiveStr,1,dotpos-1);
temp:=stringreplace(startime,'-','/',[rfreplaceall]);
// temp:='01/01/03 00:05:00';
temp:=copy(temp,4,5)+'/'+copy(temp,1,2)+copy(temp,9,9);
if xiang='a' then
begin
query1.DatabaseName :='ax';
query1.SQL.Text := 'select * from axiang where 开始时间 ="'+ temp+'"';
dsquery.DataSet :=table1;
end
else begin
query1.DatabaseName :='bx';
query1.SQL.Text :='select *from bxiang where 开始时间 ="'+ temp+'"';
dsquery.DataSet :=table2;
end;
query1.Open;
if query1.RecordCount >0 then ReceiveStr:=''
else begin
query1.Append;
query1.FieldByName('开始时间').AsDateTime:=strtodatetime(startime);
ReceiveStr:=copy(ReceiveStr,dotpos+1,length(ReceiveStr)-dotpos);
dotpos:=Pos(',',ReceiveStr);
query1.FieldByName('最大值').AsFloat :=StrToFloat(copy(ReceiveStr,1,
dotpos-1));
ReceiveStr:=copy(ReceiveStr,dotpos+1,length(ReceiveStr)-dotpos);
dotpos:=Pos(',',ReceiveStr);
query1.FieldByName('结束时间').AsDateTime:=strtodatetime(copy(ReceiveStr,1,
dotpos-1));
query1.Post;
ReceiveStr:='';
table1.Refresh;
table2.Refresh;
end;
end;*)
//progressbar1.Hide;
comm1.InputLen :=1;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Comm1.PortOpen :=true;
comm1.DTREnabled :=true;
comm1.DTREnabled :=true;
comm1.DTREnabled :=true;
comm1.DTREnabled :=true;
comm1.DTREnabled :=false;
end;
procedure TForm1.btchaxunClick(Sender: TObject);
begin
//chaxunfrm.Create(self);
chaxunfrm.Show ;
end;
procedure TForm1.bttongjiClick(Sender: TObject);
begin
tongjifrm.Show ;
end;
procedure TForm1.Button6Click(Sender: TObject);
begin
HtmlHelp( handle, AppPath+'\001.chm::/HelpContent\index.htm',
HH_DISPLAY_TOPIC, nil);
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
comm1.DTREnabled :=true;
comm1.DTREnabled :=false;
timer1.Enabled :=false;
end;
Initialization
begin
AppPath := ExtractFilePath(Application.ExeName);
ap:=TStringlist.Create;
Session.GetAliasNames(ap);{取得别名列表}
if(ap.IndexOf('ax')=-1)then{判断别名是否存在}
begin
Session.AddStandardAlias('ax',AppPath+'axiang','PARADOX');
Session.SaveConfigFile; {BDE配置文件存盘}
end;
if(ap.IndexOf('bx')=-1)then{判断别名是否存在}
begin
Session.AddStandardAlias('bx',AppPath+'bxiang','PARADOX');
Session.SaveConfigFile; {BDE配置文件存盘}
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -