📄 ffrmmain.pas
字号:
unit FfrmMain;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, SPComm, StdCtrls, CSMSControl, ExtCtrls;
type
TfrmMain = class(TForm)
btnOpenComm: TButton;
btnSendSMS: TButton;
btnCloseComm: TButton;
Label6: TLabel;
edtPhone: TEdit;
Label7: TLabel;
edtSMS: TEdit;
Label1: TLabel;
memResponses: TMemo;
Label2: TLabel;
cmbComm: TComboBox;
Label3: TLabel;
edtATCommand: TEdit;
btnSendATCommand: TButton;
Button1: TButton;
cmbSMSCenter: TComboBox;
cmbBaudRate: TComboBox;
Label4: TLabel;
Button2: TButton;
Button3: TButton;
chkOpenSendQueue: TCheckBox;
Button4: TButton;
Button5: TButton;
procedure btnOpenCommClick(Sender: TObject);
procedure btnCloseCommClick(Sender: TObject);
procedure btnSendSMSClick(Sender: TObject);
procedure CommSMSReceiveData(Sender: TObject; Buffer: Pointer;
BufferLength: Word);
procedure btnSendATCommandClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure chkOpenSendQueueClick(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
private
{ Private declarations }
ASMS:TSMSControl;
procedure ProcSMSSendOK(ID:integer);
procedure SMSNew(ID:Integer);
procedure SMSNewMsg(PhoneNO,Msg,MsgTime:String);
public
{ Public declarations }
end;
var
frmMain: TfrmMain;
implementation
{$R *.dfm}
procedure TfrmMain.btnOpenCommClick(Sender: TObject);
begin
//********************************************
//设置端口参数
//********************************************
ASMS.CommName:=cmbComm.Text;
ASMS.BaudRate:=strtoint(cmbBaudRate.text);
// CommSMS.BaudRate :=9600;
// CommSMS.StopBits :=1;
//********************************************
//打开端口
//********************************************
ASMS.StartComm;
end;
procedure TfrmMain.btnCloseCommClick(Sender: TObject);
begin
//********************************************
//关闭端口
//********************************************
ASMS.StopComm;
end;
procedure TfrmMain.btnSendSMSClick(Sender: TObject);
begin
ASMS.SendSMS(edtPhone.Text,edtSMS.Text);
// ASMS.SendSMS(edtPhone.Text,edtSMS.Text+'3');
end;
procedure TfrmMain.CommSMSReceiveData(Sender: TObject; Buffer: Pointer;
BufferLength: Word);
var
pStr:PChar;
tmpStr:string;
begin
pStr:=Buffer;
tmpStr:=string(pStr);
memResponses.Lines.Add('**************************************************************************');
memResponses.Lines.Add('*收到数据................................................................*');
memResponses.Lines.Add('**************************************************************************');
memResponses.Lines.Add(tmpStr);
end;
procedure TfrmMain.btnSendATCommandClick(Sender: TObject);
begin
ASMS.WriteCommDataAT(edtATCommand.text+#13);
end;
procedure TfrmMain.FormCreate(Sender: TObject);
begin
ASMS:=TSMSControl.Create(self) ;
ASMS.OnSMSReceiveDataEvent:=CommSMSReceiveData;
ASMS.OnSMSSendOKEvent:=ProcSMSSendOK;
ASMS.OnSMSNewMsgEvent:=SMSNewMsg;
ASMS.AutoDeleteMsg :=True;
end;
procedure TfrmMain.FormDestroy(Sender: TObject);
begin
ASMS.Free;
end;
procedure TfrmMain.Button1Click(Sender: TObject);
begin
ASMS.InitSMS(cmbSMSCenter.text);
end;
procedure TfrmMain.ProcSMSSendOK(ID: integer);
begin
frmMain.memResponses.Lines.Add(inttostr(ID)+'短信发送成功!');
end;
procedure TfrmMain.SMSNew(ID: Integer);
begin
frmMain.memResponses.Lines.Add('新收到位置为'+inttostr(ID)+'的短信!');
end;
procedure TfrmMain.SMSNewMsg(PhoneNO, Msg, MsgTime: String);
begin
frmMain.memResponses.Lines.Add('收到短信:[PhoneNO]:'+PhoneNO+'[Msg]:'+Msg+'[MsgTime]:'+MsgTime);
end;
procedure TfrmMain.Button2Click(Sender: TObject);
begin
frmMain.memResponses.Lines.Add('队列中待发短信的数量为:'+inttostr(ASMS.GetSendQueueCount));
end;
procedure TfrmMain.Button3Click(Sender: TObject);
begin
ASMS.PushSMS(10,edtPhone.Text,edtSMS.Text,Time);
end;
procedure TfrmMain.chkOpenSendQueueClick(Sender: TObject);
begin
ASMS.SetOpenProcess(chkOpenSendQueue.Checked );
end;
procedure TfrmMain.Button5Click(Sender: TObject);
begin
frmMain.memResponses.Lines.Add('队列中待发命令的数量为:'+inttostr(ASMS.GetCommandQueueCount));
end;
procedure TfrmMain.Button4Click(Sender: TObject);
begin
ASMS.PushCommand(edtATCommand.text+#13,10);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -