unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, ADODB, StdCtrls, ExtCtrls, ComCtrls, RzTray, Spin,
IdBaseComponent, IdComponent, IdRawBase, IdRawClient, IdIcmpClient;type
TForm1 = class(TForm)
ADOQ1: TADOQuery;
Timer1: TTimer;
ADOQ2: TADOQuery;
ADOConnection1: TADOConnection;
RzTrayIcon1: TRzTrayIcon;
Timer2: TTimer;
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
Panel1: TPanel;
GroupBox1: TGroupBox;
Label3: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Button2: TButton;
Button1: TButton;
Button3: TButton;
Edit4: TEdit;
GroupBox2: TGroupBox;
ListView1: TListView;
GroupBox3: TGroupBox;
Label8: TLabel;
Button4: TButton;
Button5: TButton;
GroupBox4: TGroupBox;
Button6: TButton;
Memo2: TMemo;
GroupBox5: TGroupBox;
Label9: TLabel;
Edit5: TEdit;
Button7: TButton;
Button8: TButton;
Timer3: TTimer;
ADOQ3: TADOQuery;
TabSheet3: TTabSheet;
TabSheet4: TTabSheet;
TabSheet5: TTabSheet;
Panel2: TPanel;
Label2: TLabel;
edtHost: TEdit;
spnPing: TSpinEdit;
lstReplies: TListBox;
btnPing: TButton;
Button9: TButton;
ICMP: TIdIcmpClient;
Timer4: TTimer;
Label1: TLabel;
CPUBut: TButton;
CUPButRetPhone: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure Timer2Timer(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
procedure Button8Click(Sender: TObject);
procedure Timer3Timer(Sender: TObject);
procedure btnPingClick(Sender: TObject);
procedure ICMPReply(ASender: TComponent;
const AReplyStatus: TReplyStatus);
procedure Timer4Timer(Sender: TObject);
procedure CPUButClick(Sender: TObject);
procedure CUPButRetPhoneClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
function GetBuMen(PhoneNumber:String):string;
end;
function Sms_Connection(CopyRight:pchar;Com_Port,Com_BaudRate:integer;var Mobile_Type,CopyRightToCOM:PChar):integer;stdcall;external 'sms.dll';
function Sms_Send(Sms_TelNum:string;Sms_Text:string):integer;stdcall;external 'sms.dll';
Function Sms_Receive(Sms_Type:string;var Sms_Text:PChar):integer;stdcall;external 'sms.dll';
function Sms_Delete(Sms_Index:string):integer;stdcall;external 'sms.dll';
function Sms_AutoFlag :integer;stdcall;external 'sms.dll';
function Sms_NewFlag :integer;stdcall;external 'sms.dll';
function Sms_Disconnection :integer;stdcall;external 'sms.dll';
var
Form1: TForm1;
myList : TListItem;
strs1 :TStrings;
strs2 :TStrings;
PingStrTrue,PingStrFalse,FShouJiHao : string;
implementation
//修改为2012-09-27,主要为ADOQ1提示出错:不能打开一个关闭的数据集。
{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
var
Mobile_Type:pchar;
CopyRight:pchar;
CopyRightToCOM:pchar;
begin
CopyRight:=PChar('//上海迅赛信息技术有限公司,网址www.xunsai.com//');
if Sms_Connection(CopyRight,StrToInt(Edit1.text),9600,Mobile_Type,CopyRightToCOM)<>0 then
begin
Label3.Caption:='连接成功,芯片为:'+Mobile_Type+'!';
end
else
Label3.Caption:='连接失败!'
end;procedure TForm1.Button2Click(Sender: TObject);
var
i : integer;
begin
ADOQ1.Close; //修改为2012-09-27
ADOQ1.SQL.Clear;
ADOQ1.SQL.Add('select * from TB_SendMessage where isSent = 0 ');
ADOQ1.Open;
for i := 0 to ADOQ1.RecordCount - 1 do
begin
Edit2.Clear;
edit3.Clear;
Edit4.Clear;
edit2.Text := trim(ADOQ1.fieldbyname('receivers').AsString);
Edit3.Text := trim(ADOQ1.fieldbyname('title').AsString);
edit4.Text := trim(ADOQ1.fieldbyname('ID').AsString);
if Edit2.Text = '' then
begin
;
end else
begin
if Sms_Send(Edit2.Text,Edit3.Text)=1 then
begin
showmessage('发送成功!');
myList := listView1.Items.Add;
MyList.Caption := '';
MyList.SubItems.Add(Edit2.Text);
Mylist.SubItems.Add(Edit3.Text);
Mylist.SubItems.Add(datetimetostr(now()));
Mylist.SubItems.Add('发送成功');
ADOQ2.SQL.Clear;
ADOQ2.SQL.Add('update TB_SendMessage set isSent = 1 where ID= '+quotedstr(Edit4.Text)+'');
ADOQ2.ExecSQL;
ADOQ2.Close;
sleep(15000);
end
else
begin
showmessage('发送失败!');
myList := listView1.Items.Add;
MyList.Caption := '';
MyList.SubItems.Add(Edit2.Text);
Mylist.SubItems.Add(Edit3.Text);
Mylist.SubItems.Add(datetimetostr(now()));
Mylist.SubItems.Add('发送失败');
sleep(15000);
end;
end;
ADOQ1.Next;
end;
//ADOQ1.Close; //修改为2012-09-27
end;procedure TForm1.Button3Click(Sender: TObject);
begin
Sms_Disconnection;
Label3.Caption:='已断开!';
end;
procedure TForm1.Timer1Timer(Sender: TObject);
var
i : integer;
begin
ADOQ1.Close; ///修改为2012-09-27
ADOQ1.SQL.Clear;
ADOQ1.SQL.Add('select * from TB_SendMessage where isSent = 0 ');
ADOQ1.Open;
for i := 0 to ADOQ1.RecordCount - 1 do
begin
Edit2.Clear;
edit3.Clear;
Edit4.Clear;
edit2.Text := trim(ADOQ1.fieldbyname('receivers').AsString);
Edit3.Text := trim(ADOQ1.fieldbyname('title').AsString);
edit4.Text := trim(ADOQ1.fieldbyname('ID').AsString);
if Sms_Send(Edit2.Text,Edit3.Text)=1 then
begin
//showmessage('发送成功!');
myList := listView1.Items.Add;
MyList.Caption := '';
MyList.SubItems.Add(Edit2.Text);
Mylist.SubItems.Add(Edit3.Text);
Mylist.SubItems.Add(datetimetostr(now()));
Mylist.SubItems.Add('发送成功');
ADOQ2.SQL.Clear;
ADOQ2.SQL.Add('update TB_SendMessage set isSent = 1 where ID= '+quotedstr(Edit4.Text)+'');
ADOQ2.ExecSQL;
ADOQ2.Close;
sleep(5000);
end
else
begin
//showmessage('发送失败!');
myList := listView1.Items.Add;
MyList.Caption := '';
MyList.SubItems.Add(Edit2.Text);
Mylist.SubItems.Add(Edit3.Text);
Mylist.SubItems.Add(datetimetostr(now()));
Mylist.SubItems.Add('发送失败');
sleep(5000);
end;
ADOQ1.Next;
end;
//ADOQ1.Close; /修改为2012-09-27
end;procedure TForm1.FormActivate(Sender: TObject);
begin
sleep(2000);
strs1 := TstringList.Create;
strs1.Delimiter := '|';
strs2 := TstringList.Create;
strs2.Delimiter := '#';
Button1.OnClick(button1);
end;procedure TForm1.Timer2Timer(Sender: TObject);
begin
if Sms_NewFlag()=1 then
begin
Label8.Caption:='有新短信,请查收!';
end
else
Label8.Caption:='无短信!';
end;procedure TForm1.Button4Click(Sender: TObject);
begin
Timer2.enabled:=True;
end;procedure TForm1.Button5Click(Sender: TObject);
begin
Timer2.enabled:=False;
end;procedure TForm1.Button6Click(Sender: TObject);
var
StrSmsReceive:pchar;
RecReult:integer;
i,j :Integer;
XuHao1,XuHao2,FJieShouNeiRong,FJieShouShiJian,FBuMen:string;
begin
//RecReult:=Sms_Receive('4',StrSmsReceive);
//Memo2.lines.text:=StrSmsReceive;
//if Sms_NewFlag()=1 then
//begin
RecReult:=Sms_Receive('4',StrSmsReceive);
//sleep(5000);
//showmessage(StrSmsReceive);
if (length(trim(StrSmsReceive))>0) then
begin
Memo2.lines.text:=StrSmsReceive;
StrSmsReceive:=pchar(StringReplace(StrSmsReceive, ' ', '', [rfReplaceAll]));
StrSmsReceive:=pchar(StringReplace(StrSmsReceive, #13, '', [rfReplaceAll]));
//showmessage(StrSmsReceive); strs1.DelimitedText := StrSmsReceive;
for i := 0 to strs1.Count-1 do
begin
if length(trim(strs1[i]))>0 then
begin
//showmessage(strs1[i]); strs2.DelimitedText := strs1[i];
//showmessage(inttostr(strs2.Count));
if strs2.Count=5 then
begin
XuHao1 := strs2[0];
XuHao2 := strs2[1];
FShouJiHao := strs2[2];
FJieShouNeiRong := strs2[3];
if FJieShouNeiRong='112' then
begin
btnPing.OnClick(self);
CUPButRetPhone.OnClick(self);
end;
FJieShouShiJian := copy(strs2[4],0,8)+ ' '+copy(strs2[4],9,(length(strs2[4])-8));
FBuMen := GetBuMen(strs2[2]);
ADOQ3.SQL.Clear;
ADOQ3.SQL.Add('INSERT INTO TB_DXM_ReceiveMessage'
+'(FDuXinID1, FDuXinID2,FShouJiHao,FJieShouNeiRong,FJieShouShiJian,FBuMen) VALUES '
+' ('+XuHao1+','+XuHao2+','''+FShouJiHao+''','''+FJieShouNeiRong+''','''+FJieShouShiJian+''','''+FBuMen+''')');
ADOQ3.ExecSQL;
ADOQ3.Close;
Sms_Delete(trim(strs2[0]));
end;
end
end;
end;
//end;
end;procedure TForm1.Button7Click(Sender: TObject);
var
DelReult:integer;
begin
DelReult:=Sms_Delete(Edit5.text);
end;
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, ADODB, StdCtrls, ExtCtrls, ComCtrls, RzTray, Spin,
IdBaseComponent, IdComponent, IdRawBase, IdRawClient, IdIcmpClient;type
TForm1 = class(TForm)
ADOQ1: TADOQuery;
Timer1: TTimer;
ADOQ2: TADOQuery;
ADOConnection1: TADOConnection;
RzTrayIcon1: TRzTrayIcon;
Timer2: TTimer;
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
Panel1: TPanel;
GroupBox1: TGroupBox;
Label3: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Button2: TButton;
Button1: TButton;
Button3: TButton;
Edit4: TEdit;
GroupBox2: TGroupBox;
ListView1: TListView;
GroupBox3: TGroupBox;
Label8: TLabel;
Button4: TButton;
Button5: TButton;
GroupBox4: TGroupBox;
Button6: TButton;
Memo2: TMemo;
GroupBox5: TGroupBox;
Label9: TLabel;
Edit5: TEdit;
Button7: TButton;
Button8: TButton;
Timer3: TTimer;
ADOQ3: TADOQuery;
TabSheet3: TTabSheet;
TabSheet4: TTabSheet;
TabSheet5: TTabSheet;
Panel2: TPanel;
Label2: TLabel;
edtHost: TEdit;
spnPing: TSpinEdit;
lstReplies: TListBox;
btnPing: TButton;
Button9: TButton;
ICMP: TIdIcmpClient;
Timer4: TTimer;
Label1: TLabel;
CPUBut: TButton;
CUPButRetPhone: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure Timer2Timer(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
procedure Button8Click(Sender: TObject);
procedure Timer3Timer(Sender: TObject);
procedure btnPingClick(Sender: TObject);
procedure ICMPReply(ASender: TComponent;
const AReplyStatus: TReplyStatus);
procedure Timer4Timer(Sender: TObject);
procedure CPUButClick(Sender: TObject);
procedure CUPButRetPhoneClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
function GetBuMen(PhoneNumber:String):string;
end;
function Sms_Connection(CopyRight:pchar;Com_Port,Com_BaudRate:integer;var Mobile_Type,CopyRightToCOM:PChar):integer;stdcall;external 'sms.dll';
function Sms_Send(Sms_TelNum:string;Sms_Text:string):integer;stdcall;external 'sms.dll';
Function Sms_Receive(Sms_Type:string;var Sms_Text:PChar):integer;stdcall;external 'sms.dll';
function Sms_Delete(Sms_Index:string):integer;stdcall;external 'sms.dll';
function Sms_AutoFlag :integer;stdcall;external 'sms.dll';
function Sms_NewFlag :integer;stdcall;external 'sms.dll';
function Sms_Disconnection :integer;stdcall;external 'sms.dll';
var
Form1: TForm1;
myList : TListItem;
strs1 :TStrings;
strs2 :TStrings;
PingStrTrue,PingStrFalse,FShouJiHao : string;
implementation
//修改为2012-09-27,主要为ADOQ1提示出错:不能打开一个关闭的数据集。
{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
var
Mobile_Type:pchar;
CopyRight:pchar;
CopyRightToCOM:pchar;
begin
CopyRight:=PChar('//上海迅赛信息技术有限公司,网址www.xunsai.com//');
if Sms_Connection(CopyRight,StrToInt(Edit1.text),9600,Mobile_Type,CopyRightToCOM)<>0 then
begin
Label3.Caption:='连接成功,芯片为:'+Mobile_Type+'!';
end
else
Label3.Caption:='连接失败!'
end;procedure TForm1.Button2Click(Sender: TObject);
var
i : integer;
begin
ADOQ1.Close; //修改为2012-09-27
ADOQ1.SQL.Clear;
ADOQ1.SQL.Add('select * from TB_SendMessage where isSent = 0 ');
ADOQ1.Open;
for i := 0 to ADOQ1.RecordCount - 1 do
begin
Edit2.Clear;
edit3.Clear;
Edit4.Clear;
edit2.Text := trim(ADOQ1.fieldbyname('receivers').AsString);
Edit3.Text := trim(ADOQ1.fieldbyname('title').AsString);
edit4.Text := trim(ADOQ1.fieldbyname('ID').AsString);
if Edit2.Text = '' then
begin
;
end else
begin
if Sms_Send(Edit2.Text,Edit3.Text)=1 then
begin
showmessage('发送成功!');
myList := listView1.Items.Add;
MyList.Caption := '';
MyList.SubItems.Add(Edit2.Text);
Mylist.SubItems.Add(Edit3.Text);
Mylist.SubItems.Add(datetimetostr(now()));
Mylist.SubItems.Add('发送成功');
ADOQ2.SQL.Clear;
ADOQ2.SQL.Add('update TB_SendMessage set isSent = 1 where ID= '+quotedstr(Edit4.Text)+'');
ADOQ2.ExecSQL;
ADOQ2.Close;
sleep(15000);
end
else
begin
showmessage('发送失败!');
myList := listView1.Items.Add;
MyList.Caption := '';
MyList.SubItems.Add(Edit2.Text);
Mylist.SubItems.Add(Edit3.Text);
Mylist.SubItems.Add(datetimetostr(now()));
Mylist.SubItems.Add('发送失败');
sleep(15000);
end;
end;
ADOQ1.Next;
end;
//ADOQ1.Close; //修改为2012-09-27
end;procedure TForm1.Button3Click(Sender: TObject);
begin
Sms_Disconnection;
Label3.Caption:='已断开!';
end;
procedure TForm1.Timer1Timer(Sender: TObject);
var
i : integer;
begin
ADOQ1.Close; ///修改为2012-09-27
ADOQ1.SQL.Clear;
ADOQ1.SQL.Add('select * from TB_SendMessage where isSent = 0 ');
ADOQ1.Open;
for i := 0 to ADOQ1.RecordCount - 1 do
begin
Edit2.Clear;
edit3.Clear;
Edit4.Clear;
edit2.Text := trim(ADOQ1.fieldbyname('receivers').AsString);
Edit3.Text := trim(ADOQ1.fieldbyname('title').AsString);
edit4.Text := trim(ADOQ1.fieldbyname('ID').AsString);
if Sms_Send(Edit2.Text,Edit3.Text)=1 then
begin
//showmessage('发送成功!');
myList := listView1.Items.Add;
MyList.Caption := '';
MyList.SubItems.Add(Edit2.Text);
Mylist.SubItems.Add(Edit3.Text);
Mylist.SubItems.Add(datetimetostr(now()));
Mylist.SubItems.Add('发送成功');
ADOQ2.SQL.Clear;
ADOQ2.SQL.Add('update TB_SendMessage set isSent = 1 where ID= '+quotedstr(Edit4.Text)+'');
ADOQ2.ExecSQL;
ADOQ2.Close;
sleep(5000);
end
else
begin
//showmessage('发送失败!');
myList := listView1.Items.Add;
MyList.Caption := '';
MyList.SubItems.Add(Edit2.Text);
Mylist.SubItems.Add(Edit3.Text);
Mylist.SubItems.Add(datetimetostr(now()));
Mylist.SubItems.Add('发送失败');
sleep(5000);
end;
ADOQ1.Next;
end;
//ADOQ1.Close; /修改为2012-09-27
end;procedure TForm1.FormActivate(Sender: TObject);
begin
sleep(2000);
strs1 := TstringList.Create;
strs1.Delimiter := '|';
strs2 := TstringList.Create;
strs2.Delimiter := '#';
Button1.OnClick(button1);
end;procedure TForm1.Timer2Timer(Sender: TObject);
begin
if Sms_NewFlag()=1 then
begin
Label8.Caption:='有新短信,请查收!';
end
else
Label8.Caption:='无短信!';
end;procedure TForm1.Button4Click(Sender: TObject);
begin
Timer2.enabled:=True;
end;procedure TForm1.Button5Click(Sender: TObject);
begin
Timer2.enabled:=False;
end;procedure TForm1.Button6Click(Sender: TObject);
var
StrSmsReceive:pchar;
RecReult:integer;
i,j :Integer;
XuHao1,XuHao2,FJieShouNeiRong,FJieShouShiJian,FBuMen:string;
begin
//RecReult:=Sms_Receive('4',StrSmsReceive);
//Memo2.lines.text:=StrSmsReceive;
//if Sms_NewFlag()=1 then
//begin
RecReult:=Sms_Receive('4',StrSmsReceive);
//sleep(5000);
//showmessage(StrSmsReceive);
if (length(trim(StrSmsReceive))>0) then
begin
Memo2.lines.text:=StrSmsReceive;
StrSmsReceive:=pchar(StringReplace(StrSmsReceive, ' ', '', [rfReplaceAll]));
StrSmsReceive:=pchar(StringReplace(StrSmsReceive, #13, '', [rfReplaceAll]));
//showmessage(StrSmsReceive); strs1.DelimitedText := StrSmsReceive;
for i := 0 to strs1.Count-1 do
begin
if length(trim(strs1[i]))>0 then
begin
//showmessage(strs1[i]); strs2.DelimitedText := strs1[i];
//showmessage(inttostr(strs2.Count));
if strs2.Count=5 then
begin
XuHao1 := strs2[0];
XuHao2 := strs2[1];
FShouJiHao := strs2[2];
FJieShouNeiRong := strs2[3];
if FJieShouNeiRong='112' then
begin
btnPing.OnClick(self);
CUPButRetPhone.OnClick(self);
end;
FJieShouShiJian := copy(strs2[4],0,8)+ ' '+copy(strs2[4],9,(length(strs2[4])-8));
FBuMen := GetBuMen(strs2[2]);
ADOQ3.SQL.Clear;
ADOQ3.SQL.Add('INSERT INTO TB_DXM_ReceiveMessage'
+'(FDuXinID1, FDuXinID2,FShouJiHao,FJieShouNeiRong,FJieShouShiJian,FBuMen) VALUES '
+' ('+XuHao1+','+XuHao2+','''+FShouJiHao+''','''+FJieShouNeiRong+''','''+FJieShouShiJian+''','''+FBuMen+''')');
ADOQ3.ExecSQL;
ADOQ3.Close;
Sms_Delete(trim(strs2[0]));
end;
end
end;
end;
//end;
end;procedure TForm1.Button7Click(Sender: TObject);
var
DelReult:integer;
begin
DelReult:=Sms_Delete(Edit5.text);
end;
解决方案 »
- ADO一个很有意思的问题,关于“无法为更新定位行...”
- 记录类型platform关键字是什么意思
- 请问向联众游戏中有很多座位的控件是怎么做的,还有滚动条的。急急急急急急急
- 急!在线等待............由于安装了第三方控件(FormulaOne,即F1Book6.1)!程序不打包,想直接使用!在新系统环境中则不能运行!报"没有注册类
- 请问如何给动态生成的菜单添加功能?
- 大家一起来谈谈在网上找工作的感想!!
- Delphi 7 竟然没有 QuickReport ?! Really??
- ado连access如何取回autoinc字段的值
- 请教高手,控件问题,我写了控件,动态创建多个之后,消息会相互干扰,这是为啥原因
- 关于SQL?急!
- 广联达 软件开发 前景如何?
- tstringlist使用问题(非常奇怪的现象)
//var
//StrSmsReceive:pchar;
//RecReult:integer;
///strs1 :TStrings;
//strs2 :TStrings;
//i,j :Integer;
//XuHao1,XuHao2,FShouJiHao,FJieShouNeiRong,FJieShouShiJian,FBuMen:string;
begin
{strs1 := TstringList.Create;
strs1.Delimiter := '|';
strs2 := TstringList.Create;
strs2.Delimiter := '#';
//if Sms_NewFlag()=1 then
//begin
RecReult:=Sms_Receive('4',StrSmsReceive);
//sleep(5000);
Memo2.lines.text:=StrSmsReceive;
showmessage(StrSmsReceive);
if (length(trim(StrSmsReceive))>0) then
begin
strs1.CommaText := StrSmsReceive;
for i := 0 to strs1.Count-1 do
begin
if length(trim(strs1[i]))>0 then
begin
showmessage(strs1[i]);
strs2.CommaText := strs1[i];
XuHao1 := strs2[0];
XuHao2 := strs2[1];
FShouJiHao := strs2[2];
FJieShouNeiRong := strs2[3];
FJieShouShiJian := strs2[4];
if (length(trim(FShouJiHao))=11) then
begin
FBuMen := GetBuMen('86'+strs2[2]);
end else
begin
FBuMen := GetBuMen(strs2[2]);
end; ADOQ1.SQL.Clear;
ADOQ1.SQL.Add('INSERT INTO TB_DXM_ReceiveMessage'
+'(FDuXinID1, FDuXinID2,FShouJiHao,FJieShouNeiRong,FJieShouShiJian,FBuMen) VALUES '
+' ('+XuHao1+','+XuHao2+','''+FShouJiHao+''','''+FJieShouNeiRong+''','''+FJieShouShiJian+''','''+FBuMen+''')');
ADOQ1.ExecSQL;
end
end;
end;
//end; }
end;function TForm1.GetBuMen(PhoneNumber: String): string;
var
ReturnStr : string;
i : integer;
begin
ReturnStr := '';
ADOQ3.SQL.Clear;
ADOQ3.SQL.Add('select senderId,receivers from TB_SendMessage');
ADOQ3.Open;
ADOQ3.First;
for i := 0 to ADOQ3.RecordCount - 1 do
begin
if ('86'+trim(ADOQ3.fieldbyname('receivers').AsString)= PhoneNumber) and (trim(ADOQ3.fieldbyname('senderId').AsString)='13588888888') then
begin if StrPos(PChar(ReturnStr),PChar('8S')) <> nil then
begin
;
end else
begin
ReturnStr := ReturnStr+'8S';
end; end;
if ('86'+trim(ADOQ3.fieldbyname('receivers').AsString) = PhoneNumber) and (trim(ADOQ3.fieldbyname('senderId').AsString)='13511111111') then
begin if StrPos(PChar(ReturnStr),PChar('资金平衡管理软件')) <> nil then
begin
;
end else
begin
ReturnStr := ReturnStr+'资金平衡管理软件';
end; end;
if ('86'+trim(ADOQ3.fieldbyname('receivers').AsString) = PhoneNumber) and (trim(ADOQ3.fieldbyname('senderId').AsString) ='13938960795') then
begin if StrPos(PChar(ReturnStr),PChar('质量信息管理平台')) <> nil then
begin
;
end else
begin
ReturnStr := ReturnStr+'质量信息管理平台';
end;
end;
if (trim(ADOQ3.fieldbyname('senderId').AsString) <> '13938960795') and (trim(ADOQ3.fieldbyname('senderId').AsString) <> '13511111111') and (trim(ADOQ3.fieldbyname('senderId').AsString) <> '13588888888') then
begin if StrPos(PChar(ReturnStr),PChar('其它')) <> nil then
begin
;
end else
begin
ReturnStr := ReturnStr+'其它';
end;
end;
ADOQ3.Next;
end;
ADOQ3.Close;
Result := ReturnStr;
end;procedure TForm1.Timer3Timer(Sender: TObject);
begin
button6.OnClick(button6);
end;procedure TForm1.btnPingClick(Sender: TObject);
var
i: integer;
begin
ICMP.OnReply := ICMPReply;
ICMP.ReceiveTimeout := 1000;
btnPing.Enabled := False;
try
ICMP.Host := edtHost.Text;
for i := 1 to spnPing.Value do begin
ICMP.Ping;
Application.ProcessMessages;
end;
finally
btnPing.Enabled := True;
end;
end;procedure TForm1.ICMPReply(ASender: TComponent;
const AReplyStatus: TReplyStatus);
var
sTime: string;
begin
// TODO: check for error on ping reply (ReplyStatus.MsgType?)
PingStrFalse := '';
PingStrTrue := '';
if (AReplyStatus.MsRoundTripTime = 0) then
sTime := '<1'
else
sTime := '='; lstReplies.Items.Add(Format('%d bytes from %s: icmp_seq=%d ttl=%d time%s%d ms',
[AReplyStatus.BytesReceived,
AReplyStatus.FromIpAddress,
AReplyStatus.SequenceId,
AReplyStatus.TimeToLive,
sTime,
AReplyStatus.MsRoundTripTime])); if AReplyStatus.BytesReceived = 0 then
begin
//Sms_Send('13598299760','无法ping通测试机器,可能是市电已停。'); PingStrFalse := '无法ping通测试机器,可能是市电已停。' ; end else
begin
//Sms_Send('13598299760','ping通测试机器,市电正常。');
PingStrTrue := 'ping通测试机器,市电正常。';
end;
end;procedure TForm1.Timer4Timer(Sender: TObject); //timer4自动调用btnPing事件,测试市电是否正常,并发送短信。
begin
btnPing.OnClick(self);
CPUBut.OnClick(self);
end;procedure TForm1.CPUButClick(Sender: TObject); //CUP温度报警
var
strs :TStrings;
i :Integer;
Core0,Core1,Core2,Core3 : string;
Core0Tem,Core1Tem,Core2Tem,Core3Tem : string;
//(Core#0):,(Core#1):
begin
strs := TStringList.Create;
strs.LoadFromFile('Core Temp\Temp Log.log');
//for i := 0 to Strs.Count-1 do
//ShowMessage(Strs[3]);
//showmessage(Strs[(Strs.Count-4)]);
//showmessage(Strs[(Strs.Count-3)]);
//showmessage(Strs[(Strs.Count-2)]);
//showmessage(Strs[(Strs.Count-1)]);
{Core0 := Strs[(Strs.Count-4)];
Core1 := Strs[(Strs.Count-3)];
Core2 := Strs[(Strs.Count-2)];
Core3 := Strs[(Strs.Count-1)];}
Core0 := Strs[(Strs.Count-2)];
Core1 := Strs[(Strs.Count-1)];
Core0Tem := copy(Core0,(pos('(Core#0):',Core0))+10,2);
//showmessage(Core0Tem);
if (strtoint(Core0Tem) > 53) or (length(PingStrFalse) > 0) then
begin
Sms_Send('13598299760','1、cpu温度为'+Core0Tem+'度。2、'+PingStrTrue+PingStrFalse+',请及时关注。【机房报警系统】');
sleep(5000);
Sms_Send('13525686554','1、cpu温度为'+Core0Tem+'度。2、'+PingStrTrue+PingStrFalse+',请及时关注。【机房报警系统】');
sleep(5000);
Sms_Send('15236010037','1、cpu温度为'+Core0Tem+'度。2、'+PingStrTrue+PingStrFalse+',请及时关注。【机房报警系统】');
Timer4.Interval := 4000000;
Timer4.Enabled := true;
end else
begin
Timer4.Interval := 100000;
Timer4.Enabled := true;
//Sms_Send('13598299760','1、cpu温度为'+Core0Tem+'度,在安全范围之内。2、'+PingStrTrue+PingStrFalse);
end;end;procedure TForm1.CUPButRetPhoneClick(Sender: TObject);
var
strs :TStrings;
i :Integer;
Core0,Core1,Core2,Core3 : string;
Core0Tem,Core1Tem,Core2Tem,Core3Tem : string;
//(Core#0):,(Core#1):
begin
strs := TStringList.Create;
strs.LoadFromFile('Core Temp\Temp Log.log');
//for i := 0 to Strs.Count-1 do
//ShowMessage(Strs[3]);
//showmessage(Strs[(Strs.Count-4)]);
//showmessage(Strs[(Strs.Count-3)]);
//showmessage(Strs[(Strs.Count-2)]);
//showmessage(Strs[(Strs.Count-1)]);
{Core0 := Strs[(Strs.Count-4)];
Core1 := Strs[(Strs.Count-3)];
Core2 := Strs[(Strs.Count-2)];
Core3 := Strs[(Strs.Count-1)];}
Core0 := Strs[(Strs.Count-2)];
Core1 := Strs[(Strs.Count-1)];
Core0Tem := copy(Core0,(pos('(Core#0):',Core0))+10,2);
//showmessage(Core0Tem);
if (strtoint(Core0Tem) > 53) or (length(PingStrFalse) > 0) then
begin
Sms_Send(FShouJiHao,'1、cpu温度为'+Core0Tem+'度。2、'+PingStrTrue+PingStrFalse+',请及时关注。【机房报警系统】');
Timer4.Interval := 100000;
Timer4.Enabled := true;
end else
begin
Sms_Send(FShouJiHao,'1、cpu温度为'+Core0Tem+'度,在安全范围之内。2、'+PingStrTrue+PingStrFalse+'【机房报警系统】');
Timer4.Interval := 100000;
Timer4.Enabled := true;
end;end;end.
你这个对象在过程里面,之后Create 但是没有Free 用完后应该: strs.free
还有程序即使内存泄漏DELPHI好像也不会报out of memory的吧