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.