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

📄 unit1.~pas

📁 用delphi编的sms源代码
💻 ~PAS
字号:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, OleCtrls, TransoftSMSControl30_TLB, ExtCtrls;

type
  TFrmDemo = class(TForm)
    GroupBox1: TGroupBox;
    Label1: TLabel;
    cboMobileType: TComboBox;
    Label2: TLabel;
    txtCenterNo: TEdit;
    Label3: TLabel;
    cboRate: TComboBox;
    Label4: TLabel;
    cboComPort: TComboBox;
    cmdConnect: TButton;
    cmddisConnect: TButton;
    GroupBox2: TGroupBox;
    Label5: TLabel;
    txtMobileNo: TEdit;
    txtMsg: TMemo;
    lstMobileNo: TListBox;
    Label6: TLabel;
    chkChinese: TCheckBox;
    chkNeedReport: TCheckBox;
    cmdSend: TButton;
    txtinfo: TMemo;
    Label7: TLabel;
    cmdClose: TButton;
    SMS: TSMS;
    Timer1: TTimer;
    procedure cmdConnectClick(Sender: TObject);
    procedure cmddisConnectClick(Sender: TObject);
    procedure txtMobileNoKeyPress(Sender: TObject; var Key: Char);
    procedure SMSMsgReceived(ASender: TObject; const MsgSender,
      Msg: WideString; ArrivedTime: TDateTime);
    procedure cmdSendClick(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure SMSSendComplete(ASender: TObject; intMsgReference: Smallint);
    procedure SMSError(ASender: TObject; Number: Smallint;
      const Description: WideString);
    procedure cmdCloseClick(Sender: TObject);
    procedure SMSReportReceived(ASender: TObject; MsgReference: Smallint;
      const Receiver: WideString; OriginSendTime, ArrivedTime: TDateTime;
      Status: Smallint);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  FrmDemo: TFrmDemo;

implementation

{$R *.dfm}

procedure TFrmDemo.cmdConnectClick(Sender: TObject);
begin

    if cboMobileType.Text ='标准手机' then
        SMS.MobileType :=0
    else if cboMobileType.Text='Wavecom模块'  then
        SMS.MobileType :=1
    else if cboMobileType.Text='Nokia手机'    then
        SMS.MobileType :=2
    else
        SMS.MobileType :=3;

    SMS.CommPort := StrToInt(cboCOMPort.Text);

    SMS.CenterNo := txtCenterNo.Text;
    SMS.Settings := cboRate.Text;

    //打开与手机的通讯
    If SMS.CommOpen = 0 Then
      ShowMessage('连接成功!')
    Else
      ShowMessage('连接失败!');

end;

procedure TFrmDemo.cmddisConnectClick(Sender: TObject);
begin
  SMS.CommClose();
  ShowMessage('断开成功!');
end;

procedure TFrmDemo.txtMobileNoKeyPress(Sender: TObject; var Key: Char);
begin
  if Key = #13 then
    begin
      lstMobileNo.AddItem(txtMobileNo.Text,nil);
      txtMobileNo.Text :='';
    end;

end;

procedure TFrmDemo.SMSMsgReceived(ASender: TObject; const MsgSender,
  Msg: WideString; ArrivedTime: TDateTime);
begin
  txtInfo.text  :=  txtInfo.text + #13#10 + MsgSender + ':' + Msg;
end;

procedure TFrmDemo.cmdSendClick(Sender: TObject);
begin
      Timer1.Enabled := true;
end;

procedure TFrmDemo.Timer1Timer(Sender: TObject);
var isChinese: Boolean;
var NeedReport: Boolean;
//  这里是发送短信的核心代码,
// 注:定时触发一次,一定是只发送一条短信
//    发送之前判断控件状态是否忙
//
//
begin
    if lstMobileNo.Items.Count >0  then
        //下面的判断很重要
        if SMS.IsBusy = false then
            begin
              isChinese := chkChinese.Checked;
              NeedReport := chkNeedreport.Checked;
              SMS.SendMsg(lstMobileNo.Items.Strings[0],txtMsg.Text, isChinese, NeedReport, false);
            end;
end;

procedure TFrmDemo.SMSSendComplete(ASender: TObject;
  intMsgReference: Smallint);
begin
    txtInfo.Text := txtInfo.Text + '发送给' + lstMobileNo.Items.Strings[0] + '成功!' + #13#10;
    If lstMobileNo.Items.Count > 0 Then
        lstMobileNo.Items.Delete(0);
end;

procedure TFrmDemo.SMSError(ASender: TObject; Number: Smallint;
  const Description: WideString);
begin
    txtInfo.Text := txtInfo.Text + '发送给' + lstMobileNo.Items.Strings[0] + '失败!' + #13#10;
    If lstMobileNo.Items.Count > 0 Then
        lstMobileNo.Items.Delete(0);
end;

procedure TFrmDemo.cmdCloseClick(Sender: TObject);
begin
  FrmDemo.Close;
end;

procedure TFrmDemo.SMSReportReceived(ASender: TObject;
  MsgReference: Smallint; const Receiver: WideString; OriginSendTime,
  ArrivedTime: TDateTime; Status: Smallint);
begin
  txtInfo.text  :=  txtInfo.text + #13#10 +  Receiver + '已经接收到了短信';
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -