使用短信控件的一个简单示例
2009-04-03 10:48
435 查看
unit FfrmMain;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls,FSMSThread, OoMisc,
AdPort;
type
TfrmMain = class(TForm)
btnOpenComm: TButton;
btnSendSMS: TButton;
btnCloseComm: TButton;
Label6: TLabel;
edtPhone: TEdit;
Label7: TLabel;
edtSMS: TEdit;
Label1: TLabel;
Label2: TLabel;
cmbComm: TComboBox;
Label3: TLabel;
edtATCommand: TEdit;
btnSendATCommand: TButton;
cmbSMSCenter: TComboBox;
cmbBaudRate: TComboBox;
Label4: TLabel;
Button2: TButton;
Button3: TButton;
chkOpenSendQueue: TCheckBox;
Button4: TButton;
Button5: TButton;
Button1: TButton;
Button6: TButton;
Button7: TButton;
Panel1: TPanel;
memResponses: TMemo;
memReceive: TMemo;
Splitter1: TSplitter;
Label5: TLabel;
Label8: TLabel;
Label9: TLabel;
procedure btnOpenCommClick(Sender: TObject);
procedure btnCloseCommClick(Sender: TObject);
procedure btnSendSMSClick(Sender: TObject);
procedure CommSMSReceiveData(StrReceive:String);
procedure btnSendATCommandClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure chkOpenSendQueueClick(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure ASMSSMSSendOKEvent(ID: Integer);
procedure ASMSSendErrorEvent(ID: Integer);
procedure ASMSSMSNewEvent(ID: Integer);
procedure ASMSSMSNewMsgEvent(PhoneNO, Msg, MsgTime: String);
procedure Button1Click(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure SMSResult(ID:Integer;R:Boolean);
procedure SMSExcuteCommandResultEvent(Command:String;ReturnMsg:String;ExcuteResult:Boolean);
procedure Button6Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
private
{ Private declarations }
SMS:TSMSThread;
procedure ExcuteResult(Command, ReturnMsg: String;
ExcuteResult: Boolean);
procedure NewMsg(PhoneNO,Msg,MsgTime:String);
procedure ReceiveData(StrReceive:String);
public
{ Public declarations }
end;
var
frmMain: TfrmMain;
implementation
{$R *.dfm}
procedure TfrmMain.btnOpenCommClick(Sender: TObject);
begin
//********************************************
//设置端口参数
//********************************************
SMS.SetComNum(strtoint(cmbComm.Text));
SMS.SetBaud(strtoint(cmbBaudRate.text));
SMS.SetAutoOpen(True);
SMS.AutoDeleteMsg :=False;
SMS.TimeoutCount:=100;
SMS.EnableTimeOut :=True;
SMS.CheckCommandTime :=1000;
SMS.SMSCenterNO :=cmbSMSCenter.Text;
SMS.OpenComm;
//ASMS.Open :=True;
SMS.InitSMS;
end;
procedure TfrmMain.btnCloseCommClick(Sender: TObject);
begin
//********************************************
//关闭端口
//********************************************
//停止线程
SMS.Suspend;
//关闭端口
SMS.CloseComm;
end;
procedure TfrmMain.btnSendSMSClick(Sender: TObject);
begin
if SMS.SendSMS(edtPhone.Text,edtSMS.Text) then
memResponses.Lines.Add('发送短信成功')
else
memResponses.Lines.Add('发送短信失败');
// ASMS.SendSMS(edtPhone.Text,edtSMS.Text+'3');
end;
procedure TfrmMain.CommSMSReceiveData(StrReceive:String);
begin
//memResponses.Lines.Add('*收到数据................................................................*');
memResponses.Lines.Add(StrReceive);
end;
procedure TfrmMain.btnSendATCommandClick(Sender: TObject);
var
s:String;
begin
SMS.ExcuteCommand(edtATCommand.Text+#13,s);
end;
procedure TfrmMain.FormCreate(Sender: TObject);
begin
SMS:=TSMSThread.Create(False);
SMS.OnExcuteCommandEvent :=ExcuteResult;
SMS.OnSMSNewMsgEvent :=NewMsg;
SMS.OnReceiveData := ReceiveData;
SMS.TimeoutCount:=100;
end;
procedure TfrmMain.Button2Click(Sender: TObject);
begin
frmMain.memResponses.Lines.Add('队列中待发短信的数量为:'+inttostr(SMS.GetSendQueueCount));
end;
procedure TfrmMain.Button3Click(Sender: TObject);
begin
SMS.PushSMS(10,edtPhone.Text,edtSMS.Text,Time);
end;
procedure TfrmMain.chkOpenSendQueueClick(Sender: TObject);
begin
SMS.SetOpenProcess(chkOpenSendQueue.Checked );
end;
procedure TfrmMain.Button5Click(Sender: TObject);
begin
frmMain.memResponses.Lines.Add('队列中待发命令的数量为:'+inttostr(SMS.GetCommandQueueCount));
end;
procedure TfrmMain.Button4Click(Sender: TObject);
begin
SMS.PushCommand(edtATCommand.text+#13);
end;
procedure TfrmMain.ASMSSMSSendOKEvent(ID: Integer);
begin
frmMain.memResponses.Lines.Add(inttostr(ID)+'短信发送成功!');
end;
procedure TfrmMain.ASMSSMSNewEvent(ID: Integer);
begin
frmMain.memResponses.Lines.Add('新收到位置为'+inttostr(ID)+'的短信!');
end;
procedure TfrmMain.ASMSSMSNewMsgEvent(PhoneNO, Msg, MsgTime: String);
begin
frmMain.memResponses.Lines.Add('收到短信:[PhoneNO]:'+PhoneNO+'[Msg]:'+Msg+'[MsgTime]:'+MsgTime);
end;
procedure TfrmMain.Button1Click(Sender: TObject);
begin
SMS.InitSMS;
end;
procedure TfrmMain.FormDestroy(Sender: TObject);
begin
SMS.Terminate;
// SMS
end;
procedure TfrmMain.SMSExcuteCommandResultEvent(Command:String;ReturnMsg:String;ExcuteResult:Boolean);
begin
memResponses.Lines.Add('命令'+Command+'执行结果为:'+ReturnMsg+' 成败标志:'+inttostr(ord(ExcuteResult)));
end;
procedure TfrmMain.ASMSSendErrorEvent(ID: Integer);
begin
frmMain.memResponses.Lines.Add(inttostr(ID)+'短信发送失败!');
end;
procedure TfrmMain.ExcuteResult(Command, ReturnMsg: String;
ExcuteResult: Boolean);
begin
if ExcuteResult then
memResponses.Lines.Add('命令'+Command+'执行成功,返回结果为:'#13#10+ReturnMsg)
else
memResponses.Lines.Add('命令'+Command+'执行失败,返回结果为:'#13#10+ReturnMsg);
end;
procedure TfrmMain.SMSResult(ID: Integer; R: Boolean);
begin
memResponses.Lines.Add(inttostr(id)+'发送结果为:'+inttostr(ord(r)));
end;
procedure TfrmMain.Button6Click(Sender: TObject);
begin
SMS.CloseComm;
SMS.Terminate;
close;
Application.Terminate;
end;
procedure TfrmMain.Button7Click(Sender: TObject);
begin
memResponses.Clear;
memReceive.Clear;
end;
procedure TfrmMain.NewMsg(PhoneNO, Msg, MsgTime: String);
begin
memResponses.Lines.Add('收到短信'+PhoneNO+Msg+MsgTime);
end;
procedure TfrmMain.ReceiveData(StrReceive: String);
begin
memReceive.Text :=memReceive.Text +StrReceive;
end;
end.
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls,FSMSThread, OoMisc,
AdPort;
type
TfrmMain = class(TForm)
btnOpenComm: TButton;
btnSendSMS: TButton;
btnCloseComm: TButton;
Label6: TLabel;
edtPhone: TEdit;
Label7: TLabel;
edtSMS: TEdit;
Label1: TLabel;
Label2: TLabel;
cmbComm: TComboBox;
Label3: TLabel;
edtATCommand: TEdit;
btnSendATCommand: TButton;
cmbSMSCenter: TComboBox;
cmbBaudRate: TComboBox;
Label4: TLabel;
Button2: TButton;
Button3: TButton;
chkOpenSendQueue: TCheckBox;
Button4: TButton;
Button5: TButton;
Button1: TButton;
Button6: TButton;
Button7: TButton;
Panel1: TPanel;
memResponses: TMemo;
memReceive: TMemo;
Splitter1: TSplitter;
Label5: TLabel;
Label8: TLabel;
Label9: TLabel;
procedure btnOpenCommClick(Sender: TObject);
procedure btnCloseCommClick(Sender: TObject);
procedure btnSendSMSClick(Sender: TObject);
procedure CommSMSReceiveData(StrReceive:String);
procedure btnSendATCommandClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure chkOpenSendQueueClick(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure ASMSSMSSendOKEvent(ID: Integer);
procedure ASMSSendErrorEvent(ID: Integer);
procedure ASMSSMSNewEvent(ID: Integer);
procedure ASMSSMSNewMsgEvent(PhoneNO, Msg, MsgTime: String);
procedure Button1Click(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure SMSResult(ID:Integer;R:Boolean);
procedure SMSExcuteCommandResultEvent(Command:String;ReturnMsg:String;ExcuteResult:Boolean);
procedure Button6Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
private
{ Private declarations }
SMS:TSMSThread;
procedure ExcuteResult(Command, ReturnMsg: String;
ExcuteResult: Boolean);
procedure NewMsg(PhoneNO,Msg,MsgTime:String);
procedure ReceiveData(StrReceive:String);
public
{ Public declarations }
end;
var
frmMain: TfrmMain;
implementation
{$R *.dfm}
procedure TfrmMain.btnOpenCommClick(Sender: TObject);
begin
//********************************************
//设置端口参数
//********************************************
SMS.SetComNum(strtoint(cmbComm.Text));
SMS.SetBaud(strtoint(cmbBaudRate.text));
SMS.SetAutoOpen(True);
SMS.AutoDeleteMsg :=False;
SMS.TimeoutCount:=100;
SMS.EnableTimeOut :=True;
SMS.CheckCommandTime :=1000;
SMS.SMSCenterNO :=cmbSMSCenter.Text;
SMS.OpenComm;
//ASMS.Open :=True;
SMS.InitSMS;
end;
procedure TfrmMain.btnCloseCommClick(Sender: TObject);
begin
//********************************************
//关闭端口
//********************************************
//停止线程
SMS.Suspend;
//关闭端口
SMS.CloseComm;
end;
procedure TfrmMain.btnSendSMSClick(Sender: TObject);
begin
if SMS.SendSMS(edtPhone.Text,edtSMS.Text) then
memResponses.Lines.Add('发送短信成功')
else
memResponses.Lines.Add('发送短信失败');
// ASMS.SendSMS(edtPhone.Text,edtSMS.Text+'3');
end;
procedure TfrmMain.CommSMSReceiveData(StrReceive:String);
begin
//memResponses.Lines.Add('*收到数据................................................................*');
memResponses.Lines.Add(StrReceive);
end;
procedure TfrmMain.btnSendATCommandClick(Sender: TObject);
var
s:String;
begin
SMS.ExcuteCommand(edtATCommand.Text+#13,s);
end;
procedure TfrmMain.FormCreate(Sender: TObject);
begin
SMS:=TSMSThread.Create(False);
SMS.OnExcuteCommandEvent :=ExcuteResult;
SMS.OnSMSNewMsgEvent :=NewMsg;
SMS.OnReceiveData := ReceiveData;
SMS.TimeoutCount:=100;
end;
procedure TfrmMain.Button2Click(Sender: TObject);
begin
frmMain.memResponses.Lines.Add('队列中待发短信的数量为:'+inttostr(SMS.GetSendQueueCount));
end;
procedure TfrmMain.Button3Click(Sender: TObject);
begin
SMS.PushSMS(10,edtPhone.Text,edtSMS.Text,Time);
end;
procedure TfrmMain.chkOpenSendQueueClick(Sender: TObject);
begin
SMS.SetOpenProcess(chkOpenSendQueue.Checked );
end;
procedure TfrmMain.Button5Click(Sender: TObject);
begin
frmMain.memResponses.Lines.Add('队列中待发命令的数量为:'+inttostr(SMS.GetCommandQueueCount));
end;
procedure TfrmMain.Button4Click(Sender: TObject);
begin
SMS.PushCommand(edtATCommand.text+#13);
end;
procedure TfrmMain.ASMSSMSSendOKEvent(ID: Integer);
begin
frmMain.memResponses.Lines.Add(inttostr(ID)+'短信发送成功!');
end;
procedure TfrmMain.ASMSSMSNewEvent(ID: Integer);
begin
frmMain.memResponses.Lines.Add('新收到位置为'+inttostr(ID)+'的短信!');
end;
procedure TfrmMain.ASMSSMSNewMsgEvent(PhoneNO, Msg, MsgTime: String);
begin
frmMain.memResponses.Lines.Add('收到短信:[PhoneNO]:'+PhoneNO+'[Msg]:'+Msg+'[MsgTime]:'+MsgTime);
end;
procedure TfrmMain.Button1Click(Sender: TObject);
begin
SMS.InitSMS;
end;
procedure TfrmMain.FormDestroy(Sender: TObject);
begin
SMS.Terminate;
// SMS
end;
procedure TfrmMain.SMSExcuteCommandResultEvent(Command:String;ReturnMsg:String;ExcuteResult:Boolean);
begin
memResponses.Lines.Add('命令'+Command+'执行结果为:'+ReturnMsg+' 成败标志:'+inttostr(ord(ExcuteResult)));
end;
procedure TfrmMain.ASMSSendErrorEvent(ID: Integer);
begin
frmMain.memResponses.Lines.Add(inttostr(ID)+'短信发送失败!');
end;
procedure TfrmMain.ExcuteResult(Command, ReturnMsg: String;
ExcuteResult: Boolean);
begin
if ExcuteResult then
memResponses.Lines.Add('命令'+Command+'执行成功,返回结果为:'#13#10+ReturnMsg)
else
memResponses.Lines.Add('命令'+Command+'执行失败,返回结果为:'#13#10+ReturnMsg);
end;
procedure TfrmMain.SMSResult(ID: Integer; R: Boolean);
begin
memResponses.Lines.Add(inttostr(id)+'发送结果为:'+inttostr(ord(r)));
end;
procedure TfrmMain.Button6Click(Sender: TObject);
begin
SMS.CloseComm;
SMS.Terminate;
close;
Application.Terminate;
end;
procedure TfrmMain.Button7Click(Sender: TObject);
begin
memResponses.Clear;
memReceive.Clear;
end;
procedure TfrmMain.NewMsg(PhoneNO, Msg, MsgTime: String);
begin
memResponses.Lines.Add('收到短信'+PhoneNO+Msg+MsgTime);
end;
procedure TfrmMain.ReceiveData(StrReceive: String);
begin
memReceive.Text :=memReceive.Text +StrReceive;
end;
end.
相关文章推荐
- 一个简单的JS时间控件示例代码(JS时分秒时间控件)
- UI进阶第五发:使用picker View控件完成一个简单的选餐应用
- iOS开发UI篇—使用picker View控件完成一个简单的选餐应用 - 文顶顶
- handlersocket使用 第一章 基本语法和一个简单示例
- 使用'VRM_SET_VALUES'函数在selection屏幕上建一个Combobox控件示例
- 使用MyBatis搭建一个访问mysql数据库的简单示例
- 演示事件(Event)怎样使用以及怎样为用户控件添加一个事件(示例代码下载)
- ASP.NET WebForm 分页控件 AspNetPager 使用的简单示例
- flex 整合 struts 的一个简单示例(使用Httpservice)
- 分页控件的使用能不能再简单一点呢,能不能一个页面搞定所有的列表需求?
- 演示事件(Event)怎样使用以及怎样为用户控件添加一个事件(示例代码下载)
- 一个使用Fragement控件的简单实例
- 使用picker View控件完成一个简单的选餐应用
- 使用'VRM_SET_VALUES'函数在selection屏幕上建一个Combobox控件示例
- flex 整合 struts 的一个简单示例(使用Httpservice)
- Plone的一个简单工作流使用示例
- 语法高亮编辑控件Scintilla在MFC中的简单使用之完整示例
- net 简单图表控件 (介绍测试示例使用部分) [c/s桌面应用程序控件] II
- urllib库的简单使用 && 一个简单的Python爬虫示例
- iOS开发UI篇—使用picker View控件完成一个简单的选餐应用