📄 unit1.pas
字号:
end;
end;
s_status := 1;
sleep ( 5000 );
init_port_test_0 (ApdComPort1);
timer1.Interval := 4000;
timer1.Enabled := true;
end;
procedure TForm1.Timer2Timer(Sender: TObject);
VAR i : integer;
isfound : integer;
begin
if s_issend = 0 then begin
s_issend := 1 ;
if ( s_status = 2 ) then begin
if ( e = 0 ) then begin
self.ADODataSet1.Requery() ;
self.ADODataSet1.First ;
i := 0 ; isfound := 0;
for i := 0 to self.ADODataSet1.RecordCount do begin
if self.ADODataSet1.Fields[3].Value = '未发' then begin
self.Label4.Caption :=self.ADODataSet1.Fields[1].Value;
isfound := 1;
cur_id := self.ADODataSet1.Fields[0].Value ;
break;
end;
self.ADODataSet1.Next ;
end;
if isfound = 1 then begin
send_num := trim(self.ADODataSet1.Fields[1].Value);
send_text:= trim( self.ADODataSet1.Fields[2].Value );
end else begin
send_num := '';
send_text := '';
end;
end;
if send_num <> '' then begin
self.StatusBar1.Panels[2].Text := '正在发送 ' + trim(self.ADODataSet1.Fields[1].Value);
T_send ( ApdComPort1, send_num, send_text );
//if e = trys then begin e := 0; end;
end else begin
s_issend := 0;
end;
end;
//s_issend := 0;
end;
end;
procedure TForm1.ToolButton4Click(Sender: TObject);
var s:string;
begin
SELF.Timer2.Enabled := TRUE;
str ( self.ADODataSet1.Recordset.RecordCount , s);
showMessage (s );
end;
procedure TForm1.update_status ( i : integer; j : integer );
begin
//update T_SEND set asdlkfjasdkfas
if j = 0 then begin
self.ADODataSet1.Filtered := false;
self.ADODataSet1.Filter := 'ID = ' + inttostr(i );
//Seek( i );
self.ADODataSet1.Filtered := true;
self.ADODataSet1.FindFirst ;
self.ADODataSet1.Edit;
self.ADODataSet1.Fields[3].Value := '已发';
self.ADODataSet1.Fields[4].Value := FormatDateTime('yyyy-mm-dd hh:mm:ss', Now );
self.ADODataSet1.Post ;
self.StatusBar1.Panels[2].Text := ADODataSet1.Fields[1].Text + ' ' + '已发。';
self.ADODataSet1.Filtered := false;
end;
if j = 1 then begin
self.ADODataSet1.Filtered := false;
self.ADODataSet1.Filter := 'ID = ' + inttostr(i );
//Seek( i );
self.ADODataSet1.Filtered := true;
self.ADODataSet1.FindFirst ;
self.ADODataSet1.Edit;
self.ADODataSet1.Fields[3].Value := '失败';
self.ADODataSet1.Fields[4].Value := FormatDateTime('yyyy-mm-dd hh:mm:ss', Now );
self.ADODataSet1.Post ;
self.StatusBar1.Panels[2].Text := ADODataSet1.Fields[1].Text + ' ' + '发送失败。';
self.ADODataSet1.Filtered := false;
end;
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
screen.Cursor := crHourGlass;
sleep ( 1000 );
init_port_test_0 (ApdComPort1);
timer1.Interval := 4000;
timer1.Enabled := true;
end;
procedure TForm1.Button5Click(Sender: TObject);
begin
self.StatusBar1.Panels[1].Text := '<发送>';
timer2.Enabled := true;
end;
procedure TForm1.FormResize(Sender: TObject);
begin
//showmessage ( 'asdfsadf' );
end;
procedure TForm1.PageControl1Change(Sender: TObject);
begin
if self.PageControl1.ActivePageIndex = 1 then begin
self.ADODataSet2.Requery();
self.DBGrid2.Refresh ;
end;
end;
procedure TForm1.Button6Click(Sender: TObject);
begin
self.StatusBar1.Panels[1].Text := '<停止>';
timer2.Enabled := false;
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Shell_NotifyIcon(NIM_DELETE,@tnd);
end;
procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
var s : string;
begin
s := Socket.ReceiveText;
self.StatusBar1.Panels[2].Text := s;
end;
{
procedure TForm1.IdTCPServer1Execute(AThread: TIdPeerThread);
var s: string;
begin
s := AThread.Connection.ReadLn ( chr(26) ) ; //'</msg>' );
self.StatusBar1.Panels[2].Text := s ;
AThread.Connection.Disconnect;
insert_rec ( s );
end;
procedure TForm1.Insert_rec ( s : string );
var s1, s2 : string;
begin
if StrPos ( pchar(s), Pchar( '<num>' ) ) = NIL then begin
ShowMessage ( '收到的信息格式不对。' );
exit;
end;
if StrPos ( pchar(s), Pchar( '<\num>' ) ) = NIL then begin
ShowMessage ( '收到的信息格式不对。' );
exit;
end;
if StrPos ( pchar(s), Pchar( '<msg>' ) ) = NIL then begin
ShowMessage ( '收到的信息格式不对。' );
exit;
end;
if StrPos ( pchar(s), Pchar( '<\msg>' ) ) = NIL then begin
ShowMessage ( '收到的信息格式不对。' );
exit;
end;
s1 := copy ( s, 6, pos ( '</num>', s )-6 );
s2 := copy ( s, pos ( '<msg>', s )+5, pos( '</msg>', s ) - pos ( '<msg>', s ) - 5 );
self.ADODataSet1.InsertRecord([nil,s1,s2,'未发'] );
end;
}
procedure TForm1.DBGrid1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var p : TPoint;
begin
if button = mbRight then begin
p := DBGrid1.ClientToScreen(Point(x,y));
self.PopupMenu1.Popup ( p.X, p.Y );
end;
end;
procedure TForm1.N1Click(Sender: TObject);
var i : integer;
// S: STRING;
// d : Tdatasource;
begin
if timer2.Enabled = true then begin
ShowMessage ( '请先停止发送再清除记录。' );
exit;
end;
{self.ADODataSet1.Filtered := false;
self.ADODataSet1.Filter := 'STATUS = ' + ''''+'已发'+'''';
self.ADODataSet1.Filtered := true;
self.ADODataSet1.DeleteRecords( arFiltered );
self.ADODataSet1.UpdateBatch();
exit;}
screen.Cursor := crHourGlass;
for i := 1 to 10 do begin
self.ADODataSet1.Requery();
self.ADODataSet1.First ;
while not self.ADODataSet1.Eof do begin
if self.ADODataSet1.Fields[3].Value = '已发' then begin
self.ADODataSet1.Delete ; //Records( arCurrent );
self.ADODataSet1.UpdateBatch; //(arCurrent) ;
end;
self.ADODataSet1.Next;
end;
self.ADODataSet1.UpdateBatch();
end;
//self.ADODataSet1.UpdateRecord;
self.ADODataSet1.Requery();
self.ADODataSet1.Refresh;
self.DBGrid1.Update;
self.DBGrid1.Refresh;
screen.Cursor := crArrow;
exit;
screen.Cursor := crHourGlass;
self.DBGrid1.DataSource := nil;
self.DBGrid1.Refresh;
self.DataSource1.DataSet.Close ;
self.ADODataSet1.Close ;
i := self.ADOQuery1.ExecSQL;
self.DataSource1.DataSet.Open ;
self.DataSource1.DataSet.Resync([rmExact]);
self.ADODataSet1.Open ;
self.ADODataSet1.Requery();
self.ADODataSet1.Refresh;
self.ADODataSet1.Refresh;
self.DBGrid1.DataSource := self.DataSource1;
self.DBGrid1.Refresh;
self.DBGrid1.Refresh;
screen.Cursor := crArrow;
exit;
sleep ( 1000 );
screen.Cursor := crHourGlass;
i := self.ADOQuery1.ExecSQL;
i := self.ADOQuery1.ExecSQL;
i := self.ADOQuery1.ExecSQL;
//self.ADODataSet1.UpdateBatch ();
self.ADODataSet1.Requery();
self.ADODataSet1.Refresh;
self.DBGrid1.Invalidate;
self.DBGrid1.InitiateAction;
self.DBGrid1.Update;
self.DBGrid1.Refresh;
screen.Cursor := crArrow;
end;
procedure TForm1.qc1Click(Sender: TObject);
begin
while not self.ADODataSet1.Eof do begin
//DeleteRecords( arFiltered );
self.ADODataSet1.Delete ;
self.ADODataSet1.Next;
end;
self.ADODataSet1.Filtered := false;
end;
procedure TForm1.N2Click(Sender: TObject);
var i : integer;
begin
if timer2.Enabled = true then begin
ShowMessage ( '请先停止发送再清除记录。' );
exit;
end;
screen.Cursor := crHourGlass;
for i := 1 to 10 do begin
self.ADODataSet2.Requery();
self.ADODataSet2.First ;
while not self.ADODataSet2.Eof do begin
if self.ADODataSet2.Fields[3].Value = '失败' then begin
self.ADODataSet2.Delete ; //Records( arCurrent );
self.ADODataSet2.UpdateBatch; //(arCurrent) ;
end;
self.ADODataSet2.Next;
end;
self.ADODataSet2.UpdateBatch();
end;
//self.ADODataSet1.UpdateRecord;
self.ADODataSet2.Requery();
self.ADODataSet2.Refresh;
self.DBGrid2.Update;
self.DBGrid2.Refresh;
screen.Cursor := crArrow;
end;
procedure TForm1.DBGrid2MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var p : TPoint;
begin
if button = mbRight then begin
p := DBGrid1.ClientToScreen(Point(x,y));
self.PopupMenu2.Popup ( p.X, p.Y );
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -