⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ffrmmain.pas

📁 SMS短信收发纯Delphi开发VCL SMS短信收发纯Delphi开发VCL
💻 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 + -