www.pudn.com > SMSDemoALL.zip > Main.pas


unit Main; 
 
interface 
 
uses 
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 
  Dialogs, StdCtrls, OleCtrls, MOBILESMSLib_TLB, ExtDlgs, XPMan; 
 
type 
  TFormMain = class(TForm) 
    GroupBox1: TGroupBox; 
    Label1: TLabel; 
    CmbConnectionMode: TComboBox; 
    Label2: TLabel; 
    Label4: TLabel; 
    GroupBox2: TGroupBox; 
    Label3: TLabel; 
    Manufacturer: TEdit; 
    Model: TEdit; 
    Label5: TLabel; 
    IMEI: TEdit; 
    Label6: TLabel; 
    Battery: TEdit; 
    Version: TEdit; 
    Time: TEdit; 
    Label7: TLabel; 
    Label8: TLabel; 
    Label9: TLabel; 
    Label10: TLabel; 
    Label11: TLabel; 
    Label12: TLabel; 
    BtnInfoRrefresh: TButton; 
    BtnSetTime: TButton; 
    BtnCall: TButton; 
    GroupBox3: TGroupBox; 
    Label13: TLabel; 
    Phone: TEdit; 
    Label14: TLabel; 
    Label16: TLabel; 
    Validity: TEdit; 
    SMSText: TMemo; 
    Label15: TLabel; 
    Ringtone: TEdit; 
    Label17: TLabel; 
    LogoFile: TEdit; 
    BtnRintone: TButton; 
    BtnLogo: TButton; 
    Label18: TLabel; 
    MCC: TEdit; 
    Label19: TLabel; 
    MNC: TEdit; 
    Label20: TLabel; 
    SMSC: TEdit; 
    BtnGetSMSC: TButton; 
    BtnSetSMSC: TButton; 
    Label21: TLabel; 
    CmbOptType: TComboBox; 
    SMSIndex: TEdit; 
    BtnSMSDelete: TButton; 
    ChkNeedReport: TCheckBox; 
    BtnSMSRefresh: TButton; 
    BtnSMSSend: TButton; 
    BtnSMSSave: TButton; 
    BtnSMSReset: TButton; 
    GroupBox4: TGroupBox; 
    PBResult: TMemo; 
    PBName: TEdit; 
    BtnPBRefresh: TButton; 
    PBPhone: TEdit; 
    BtnPBSave: TButton; 
    PBIndex: TEdit; 
    BtnPBDelete: TButton; 
    SMSResult: TMemo; 
    Label22: TLabel; 
    Label23: TLabel; 
    Label24: TLabel; 
    Label25: TLabel; 
    NetInfo: TEdit; 
    ComPort: TEdit; 
    BtnConnect: TButton; 
    BtnDisconnect: TButton; 
    CmbComBaudrate: TComboBox; 
    ODRingtone: TOpenDialog; 
    OPDLogo: TOpenPictureDialog; 
    MobileSMS: TMobileSMS; 
    procedure BtnConnectClick(Sender: TObject); 
    procedure BtnDisconnectClick(Sender: TObject); 
    procedure BtnInfoRrefreshClick(Sender: TObject); 
    procedure BtnSetTimeClick(Sender: TObject); 
    procedure BtnGetSMSCClick(Sender: TObject); 
    procedure BtnSetSMSCClick(Sender: TObject); 
    procedure BtnSMSDeleteClick(Sender: TObject); 
    procedure BtnSMSRefreshClick(Sender: TObject); 
    procedure BtnSMSSendClick(Sender: TObject); 
    procedure BtnSMSSaveClick(Sender: TObject); 
    procedure BtnSMSResetClick(Sender: TObject); 
    procedure FormShow(Sender: TObject); 
    procedure BtnPBDeleteClick(Sender: TObject); 
    procedure BtnPBRefreshClick(Sender: TObject); 
    procedure BtnPBSaveClick(Sender: TObject); 
    procedure MobileSMSNewIncommingCall(ASender: TObject; 
      const Phone: WideString); 
    procedure MobileSMSNewReport(ASender: TObject; Index: Integer; 
      const Phone, Time: WideString; Delivery: Integer); 
    procedure MobileSMSNewMsg(ASender: TObject; Index: Integer; 
      const Phone, Text, Time: WideString; Code: Integer); 
    procedure BtnRintoneClick(Sender: TObject); 
    procedure BtnLogoClick(Sender: TObject); 
    procedure BtnCallClick(Sender: TObject); 
  private 
    { Private declarations } 
  public 
    { Public declarations } 
  end; 
 
var 
  FormMain: TFormMain; 
 
implementation 
 
uses Call; 
 
{$R *.dfm} 
 
procedure TFormMain.BtnConnectClick(Sender: TObject); 
begin 
    MobileSMS.Disconnect; 
    MobileSMS.ConnectionMode:=CmbConnectionMode.ItemIndex; 
    if(ComPort.Text='') then 
        ComPort.Text:='1'; 
    MobileSMS.ComNumber:=StrToInt(ComPort.Text); 
    MobileSMS.ComBaudrate:=StrToInt(CmbComBaudrate.Text); 
    if(MobileSMS.Connect()<1) then 
        ShowMessage('Failed!') 
    else 
    begin 
        BtnInfoRrefreshClick(Sender); 
        BtnConnect.Enabled:=false; 
        BtnDisconnect.Enabled:=true; 
    end 
end; 
 
procedure TFormMain.BtnDisconnectClick(Sender: TObject); 
begin 
    if MobileSMS.Disconnect>0 then 
    begin 
        BtnConnect.Enabled:=true; 
        BtnDisconnect.Enabled:=false; 
    end 
end; 
 
procedure TFormMain.BtnInfoRrefreshClick(Sender: TObject); 
begin 
    Manufacturer.Text:=MobileSMS.GetManufacturer; 
    Model.Text:=MobileSMS.GetModel; 
    IMEI.Text:=MobileSMS.GetIMEI; 
    NetInfo.Text:=MobileSMS.GetNetInfo; 
    Battery.Text:=IntToStr(MobileSMS.GetBatteryLevel); 
    Version.Text:=MobileSMS.GetVersion; 
    Time.Text:=MobileSMS.GetTime; 
    MCC.Text:=IntToStr(MobileSMS.MobileMCC); 
    MNC.Text:=IntToStr(MobileSMS.MobileMNC); 
end; 
 
procedure TFormMain.BtnSetTimeClick(Sender: TObject); 
begin 
    if(MobileSMS.SetTime(Time.Text)<0) then 
        ShowMessage('Failed!') 
    else 
        ShowMessage('Successful!'); 
end; 
 
procedure TFormMain.BtnGetSMSCClick(Sender: TObject); 
begin 
    SMSC.Text:=MobileSMS.GetSMSCNumber; 
end; 
 
procedure TFormMain.BtnSetSMSCClick(Sender: TObject); 
begin 
    if(MobileSMS.SetSMSCNumber(SMSC.Text)<0) then 
        ShowMessage('Failed!') 
    else 
        ShowMessage('Successful!'); 
end; 
 
procedure TFormMain.BtnSMSDeleteClick(Sender: TObject); 
begin 
    if(SMSIndex.Text='') then 
        SMSIndex.Text:='0'; 
    if(MobileSMS.SMSDelete(StrToInt(SMSIndex.Text))<0) then 
        ShowMessage('Failed!') 
    else 
    begin 
        ShowMessage('Successful!'); 
        BtnSMSRefreshClick(Sender); 
    end 
end; 
 
procedure TFormMain.BtnSMSRefreshClick(Sender: TObject); 
var lCapability, lCount, lReaded, i : Integer; 
begin 
    lCapability := MobileSMS.SMSGetCapability; 
    If lCapability > 20 then 
        lCapability := 20; 
    lCount := MobileSMS.SMSGetCount; 
    lReaded := 0; 
    SMSResult.Text := ''; 
    for i := 1 to lCapability do 
    begin 
        SMSResult.Text := SMSResult.Text + IntToStr(i) + '  '; 
        If lReaded < lCount then 
        begin 
            If MobileSMS.SMSRead(i) > 0 then 
            begin 
                SMSResult.text := SMSResult.text + MobileSMS.SMSLastReadTime + '    '; 
                SMSResult.text := SMSResult.text + MobileSMS.SMSLastReadPhone + '    '; 
                SMSResult.text := SMSResult.text + MobileSMS.SMSLastReadText + '   '; 
                lReaded := lReaded + 1; 
            end; 
        end; 
        SMSResult.text := SMSResult.text + #13#10;; 
    end 
end; 
 
procedure TFormMain.BtnSMSSendClick(Sender: TObject); 
var lCode, lResult : Integer; 
begin 
    lCode := 0; 
    MobileSMS.SMSSendValidity := StrToInt(Validity.Text); 
    if(ChkNeedReport.Checked = true) then 
        MobileSMS.SMSSendNeedReport := 1 
    else 
        MobileSMS.SMSSendNeedReport := 0; 
    if MCC.Text <> '' then 
        MobileSMS.MobileMCC := StrToInt(MCC.Text);//   Nokia Only 
    if MNC.Text <> '' then 
        MobileSMS.MobileMNC := StrToInt(MNC.Text);//   Nokia Only 
 
    case CmbOptType.ItemIndex of 
      0:  lCode := 1;//      TEXT MESSAGE 
      1:  lCode := 2;//      LONG TEXT MESSAGE 
      2:  lCode := 3;//      AUTOSHOW TEXT MESSAGE 
      3:  lCode := 4;//      FLASH TEXT MESSAGE 
 
      5:  lCode := 2001;//   NOKIA RINGTONE 
      6:  lCode := 2011;//   SIEMENS RINGTONE 
      7:  lCode := 2021;//   ALCATEL RINGTONE 
      8:  lCode := 2031;//   MOTOROLA RINGTONE 
      9:  lCode := 2041;//   EMS RINGTONE 
      10: lCode := 2051;//   SAMSUNG RINGTONE 
 
      12: lCode := 1001;//   NOKIA CLI LOGO 
      13: lCode := 1002;//   NOKIA OPERATOR LOGO 
      14: lCode := 1004;//   NOKIA PICTURE 
      15: lCode := 1011;//   SIEMENS LOGO 
      16: lCode := 1021;//   ALCATEL LOGO 
      17: lCode := 1031;//   MOTOROLA LOGO 
      18: lCode := 1041;//   EMS LOGO 
      19: lCode := 1051;//   SAMSUNG LOGO 
    end; 
 
    if lCode > 2000 then 
        lResult := MobileSMS.RingtoneSend(Phone.Text, Ringtone.Text, lCode) 
    else if lCode > 1000 then 
        lResult := MobileSMS.LogoSend(Phone.Text, LogoFile.Text, lCode) 
    else 
        lResult := MobileSMS.SMSSend(Phone.Text, SMSText.Text, lCode); 
 
    if lResult < 0 then 
        ShowMessage('Failed!') 
    else 
        ShowMessage('Successful!'); 
end; 
 
procedure TFormMain.BtnSMSSaveClick(Sender: TObject); 
var lCode, lResult : Integer; 
begin 
    lCode := 0; 
    MobileSMS.SMSSendValidity := StrToInt(Validity.Text); 
    if(ChkNeedReport.Checked = true) then 
        MobileSMS.SMSSendNeedReport := 1 
    else 
        MobileSMS.SMSSendNeedReport := 0; 
    if MCC.Text <> '' then 
        MobileSMS.MobileMCC := StrToInt(MCC.Text);//   Nokia Only 
    if MNC.Text <> '' then 
        MobileSMS.MobileMNC := StrToInt(MNC.Text);//   Nokia Only 
 
    case CmbOptType.ItemIndex of 
      0:  lCode := 1;//      TEXT MESSAGE 
      1:  lCode := 2;//      LONG TEXT MESSAGE 
      2:  lCode := 3;//      AUTOSHOW TEXT MESSAGE 
      3:  lCode := 4;//      FLASH TEXT MESSAGE 
 
      5:  lCode := 2001;//   NOKIA RINGTONE 
      6:  lCode := 2011;//   SIEMENS RINGTONE 
      7:  lCode := 2021;//   ALCATEL RINGTONE 
      8:  lCode := 2031;//   MOTOROLA RINGTONE 
      9:  lCode := 2041;//   EMS RINGTONE 
      10: lCode := 2051;//   SAMSUNG RINGTONE 
 
      12: lCode := 1001;//   NOKIA CLI LOGO 
      13: lCode := 1002;//   NOKIA OPERATOR LOGO 
      14: lCode := 1004;//   NOKIA PICTURE 
      15: lCode := 1011;//   SIEMENS LOGO 
      16: lCode := 1021;//   ALCATEL LOGO 
      17: lCode := 1031;//   MOTOROLA LOGO 
      18: lCode := 1041;//   EMS LOGO 
      19: lCode := 1051;//   SAMSUNG LOGO 
    end; 
 
    if lCode > 2000 then 
        lResult := MobileSMS.RingtoneSave(Ringtone.Text, 0, lCode) 
    else if lCode > 1000 then 
        lResult := MobileSMS.LogoSave(LogoFile.Text, lCode) 
    else 
        lResult := MobileSMS.SMSSave(Phone.Text, SMSText.Text, lCode); 
 
    if lResult < 0 then 
        ShowMessage('Failed!') 
    else 
        ShowMessage('Successful!'); 
end; 
 
procedure TFormMain.BtnSMSResetClick(Sender: TObject); 
var lCode, lResult : Integer; 
begin 
    lCode := 0; 
    lResult := -1; 
    case CmbOptType.ItemIndex of 
      12: lCode := 1001;//   NOKIA CLI LOGO 
      13: lCode := 1002;//   NOKIA OPERATOR LOGO 
      14: lCode := 1004;//   NOKIA PICTURE 
      15: lCode := 1011;//   SIEMENS LOGO 
      16: lCode := 1021;//   ALCATEL LOGO 
      17: lCode := 1031;//   MOTOROLA LOGO 
      18: lCode := 1041;//   EMS LOGO 
      19: lCode := 1051;//   SAMSUNG LOGO 
    end; 
 
    if ((lCode > 1000) and (lCode < 2000)) then 
        lResult := MobileSMS.LogoReset(lCode); 
 
    if lResult < 0 then 
        ShowMessage('Failed!') 
    else 
        ShowMessage('Successful!'); 
end; 
 
procedure TFormMain.FormShow(Sender: TObject); 
begin 
    MobileSMS.Top:=-1000; 
    MobileSMS.Visible:=true; 
    SMSResult.Text:=''; 
    PBResult.Text:=''; 
    SMSText.Text:=''; 
    SMSIndex.Text:='0'; 
    PBIndex.Text:='0'; 
end; 
 
procedure TFormMain.BtnPBDeleteClick(Sender: TObject); 
begin 
    if(PBIndex.Text='') then 
        PBIndex.Text:='0'; 
    MobileSMS.PBSetStorage('SM'); 
    if(MobileSMS.PBDelete(StrToInt(PBIndex.Text))<0) then 
        ShowMessage('Failed!') 
    else 
    begin 
        ShowMessage('Successful!'); 
        BtnPBRefreshClick(Sender); 
    end; 
end; 
 
procedure TFormMain.BtnPBRefreshClick(Sender: TObject); 
var lCapability, lCount, lReaded, i, j : Integer; 
var strTemp : String; 
begin 
    PBResult.Text := ''; 
    for j := 1 to 5 do 
    begin 
    case j of 
      1:  begin 
            strTemp := 'MC'; 
            PBResult.Text := PBResult.Text + '<<<<<<<<>>>>>>>' + #13#10; 
          end; 
      2:  begin 
            strTemp := 'LD'; 
            PBResult.Text := PBResult.Text + '<<<<<<<<>>>>>>>' + #13#10; 
          end; 
      3:  begin 
            strTemp := 'RC'; 
            PBResult.Text := PBResult.Text + '<<<<<<<>>>>>>' + #13#10; 
          end; 
      4:  begin 
            strTemp := 'SM'; 
            PBResult.Text := PBResult.Text + '<<<<<<<<<<<>>>>>>>>>>' + #13#10; 
          end; 
      5:  begin 
            strTemp := 'ME'; 
            PBResult.Text := PBResult.Text + '<<<<<<<<<<>>>>>>>>>' + #13#10; 
          end; 
    end; 
    if MobileSMS.PBSetStorage(strTemp) > 0 then 
    begin 
        lCapability := MobileSMS.PBGetCapability; 
        if lCapability > 10 then 
            lCapability := 10; 
 
        lCount := MobileSMS.PBGetCount; 
        lReaded := 0; 
        for i := 1 to lCapability do 
        begin 
            PBResult.Text := PBResult.Text + IntToStr(i) + '  '; 
            if lReaded < lCount then 
            begin 
                if MobileSMS.PBRead(i) > 0 then 
                begin 
                    PBResult.Text := PBResult.Text + MobileSMS.PBLastReadPhone + '   '; 
                    PBResult.Text := PBResult.Text + MobileSMS.PBLastReadName; 
                    lReaded := lReaded + 1; 
                end; 
            end; 
            PBResult.Text := PBResult.Text + #13#10; 
        end; 
      end; 
    end; 
end; 
procedure TFormMain.BtnPBSaveClick(Sender: TObject); 
begin 
    MobileSMS.PBSetStorage ('SM'); 
    if MobileSMS.PBSave(StrToInt(PBIndex.Text), PBPhone.Text, PBName.Text) < 0 then 
        ShowMessage('Failed!') 
    else 
        ShowMessage('Successful!'); 
end; 
 
procedure TFormMain.MobileSMSNewIncommingCall(ASender: TObject; 
  const Phone: WideString); 
begin 
    FormCall.Phone.Text:=Phone; 
    FormCall.ShowModal; 
end; 
 
procedure TFormMain.MobileSMSNewReport(ASender: TObject; Index: Integer; 
  const Phone, Time: WideString; Delivery: Integer); 
begin 
    ShowMessage('New report: ' + IntToStr(Index) + ',' + Time + ',' + Phone + ',' + IntToStr(Delivery)); 
end; 
 
procedure TFormMain.MobileSMSNewMsg(ASender: TObject; Index: Integer; 
  const Phone, Text, Time: WideString; Code: Integer); 
begin 
    ShowMessage('New message: ' + IntToStr(Index) + ',' + Time + ',' + Phone + ',' + Text); 
    BtnSMSRefreshClick(ASender); 
end; 
 
procedure TFormMain.BtnRintoneClick(Sender: TObject); 
begin 
if ODRingtone.Execute then 
    begin 
      Ringtone.Text := ODRingtone.FileName ; 
    end; 
end; 
 
procedure TFormMain.BtnLogoClick(Sender: TObject); 
begin 
if OPDLogo.Execute then 
    begin 
      LogoFile.Text := OPDLogo.FileName ; 
    end; 
end; 
 
procedure TFormMain.BtnCallClick(Sender: TObject); 
begin 
FormCall.Phone.Text:=''; 
FormCall.ShowModal; 
end; 
 
end.