www.pudn.com > fbdelphisw > MainUnit.pas
unit MainUnit;
interface
{$DEFINE REGISTRED}
{.$DEFINE UNREGISTRED}
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Outlook, FBUS,INIFiles, ExtCtrls, Menus, ComCtrls, FBUSStatusBar,
StdCtrls, Mask,phonebook, FileCtrl, VSSLogoEditor, FBUSOpenPictureDialog;
var
fFont : TFont;
bFirstTime : boolean;
bContinueLoop : Boolean;
type
TfrmMain = class(TForm)
Outlook1: TOutlook;
FBUS1: TFBUS;
tmpTimer: TTimer;
Notebook1: TNotebook;
MFBUSStatusBar1: TMFBUSStatusBar;
MainMenu1: TMainMenu;
File1: TMenuItem;
Exit1: TMenuItem;
Phone1: TMenuItem;
N1: TMenuItem;
Connect1: TMenuItem;
Disconnect1: TMenuItem;
Settings1: TMenuItem;
ChangeComport1: TMenuItem;
Reset1: TMenuItem;
SoftReset1: TMenuItem;
N2: TMenuItem;
HardReset1: TMenuItem;
grpPhoneInfo: TGroupBox;
lvPhoneInfo: TListView;
grpNetworkInfo: TGroupBox;
lvNetworkInfo: TListView;
grpPhoneDateTime: TGroupBox;
DateTimeLabel: TLabel;
GroupBox3: TGroupBox;
txtTime: TMaskEdit;
Button3: TButton;
lvPhoneBook: TListView;
grpMemoryType: TGroupBox;
btnPBAddnew: TButton;
btnPBDelete: TButton;
btnPBRefresh: TButton;
btnPBSendSMS: TButton;
cmbpMemType: TComboBox;
imgPhone: TImage;
Image4: TImage;
btnAddSpeedDial: TButton;
btnEditSpeedDial: TButton;
cmboSpeedMem: TComboBox;
txtSpeedGroup: TEdit;
txtSpeedNumber: TEdit;
txtSpeedName: TEdit;
Label15: TLabel;
Label16: TLabel;
Label17: TLabel;
Label18: TLabel;
lblLocation: TLabel;
lvSpeedDial: TListView;
btnDeleteSMS: TButton;
Label25: TLabel;
smsMemory: TProgressBar;
lvSMS: TListView;
grpSMSMemoryType: TGroupBox;
cmboSMSMemType: TComboBox;
btnSMSSendSMS: TButton;
btnPlayTone: TButton;
rgrpPlayDevice: TRadioGroup;
btnSendVIASMS: TButton;
btnRingToneUpload: TButton;
btnRingToneWrite: TButton;
gtpringtoneLoc: TGroupBox;
DriveComboBox1: TDriveComboBox;
DirectoryListBox1: TDirectoryListBox;
FileListBox1: TFileListBox;
FilterComboBox1: TFilterComboBox;
grpDTMF: TGroupBox;
btnDTMF1: TButton;
btnDTMF2: TButton;
btnDTMF3: TButton;
btnDTMF4: TButton;
btnDTMF5: TButton;
btnDTMF6: TButton;
btnDTMF7: TButton;
btnDTMF8: TButton;
btnDTMF9: TButton;
btnDTMF0: TButton;
txtVoiceCall: TEdit;
btnCall: TButton;
btnHangup: TButton;
btnDTMFPlus: TButton;
btnDTMFhash: TButton;
rgrpDTMFType: TRadioGroup;
logoPanel: TPanel;
grpNetMonScreen: TGroupBox;
UpDown1: TUpDown;
Edit1: TEdit;
Button7: TButton;
Button8: TButton;
Button6: TButton;
moNetMonitor: TMemo;
btnClear: TButton;
btnDownload: TButton;
btnLoadfromfile: TButton;
btnSendToPhone: TButton;
Button1: TButton;
btnSaveLogo: TButton;
GroupBox1: TGroupBox;
cmboLogoType: TComboBox;
btnReset: TButton;
GroupBox4: TGroupBox;
txtLogo: TEdit;
Button17: TButton;
Button19: TButton;
GroupBox5: TGroupBox;
DisplayLogo: TImage;
dlgOpenImageFile: TFBUSOpenPictureDialog;
FontDialog1: TFontDialog;
View1: TMenuItem;
PhoneInfo1: TMenuItem;
N3: TMenuItem;
PhoneBook1: TMenuItem;
N4: TMenuItem;
SMS1: TMenuItem;
N5: TMenuItem;
SpeedDial1: TMenuItem;
N6: TMenuItem;
RingTone1: TMenuItem;
N7: TMenuItem;
Logo1: TMenuItem;
N8: TMenuItem;
DTMF1: TMenuItem;
N9: TMenuItem;
NetMonitor1: TMenuItem;
lblText: TLabel;
Label1: TLabel;
lblSpeedPosition: TLabel;
btnChangeProvider: TButton;
btnExport: TButton;
LogoEditor: TVSSLogoEditor;
procedure FormShow(Sender: TObject);
procedure tmpTimerTimer(Sender: TObject);
procedure FBUS1Connected(iResult: Integer; msg: String);
procedure Connect1Click(Sender: TObject);
procedure Disconnect1Click(Sender: TObject);
procedure ChangeComport1Click(Sender: TObject);
procedure SoftReset1Click(Sender: TObject);
procedure HardReset1Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Outlook1ItemClick(Sender: TObject; Item: String);
procedure cmbpMemTypeClick(Sender: TObject);
procedure btnPBRefreshClick(Sender: TObject);
procedure btnPBAddnewClick(Sender: TObject);
procedure Exit1Click(Sender: TObject);
procedure btnPBDeleteClick(Sender: TObject);
procedure imgPhoneMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure imgPhoneMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure imgPhoneMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure FindSpeedDialDetails(iValue:integer);
procedure btnAddSpeedDialClick(Sender: TObject);
procedure btnEditSpeedDialClick(Sender: TObject);
procedure cmboSMSMemTypeClick(Sender: TObject);
procedure FBUS1DelivaryCount(iSMSCount: Integer);
procedure FBUS1InboxCount(iSMSCount: Integer);
procedure FBUS1OutBoxCount(iSMSCount: Integer);
procedure lvSMSClick(Sender: TObject);
procedure btnSMSSendSMSClick(Sender: TObject);
procedure lvSMSDblClick(Sender: TObject);
function FindSendersName(sNumber:string):string;
procedure FBUS1SMSSent;
procedure FBUS1SMSSendError;
procedure FBUS1NewSMSMessage;
procedure btnDeleteSMSClick(Sender: TObject);
procedure btnPBSendSMSClick(Sender: TObject);
procedure btnPlayToneClick(Sender: TObject);
procedure btnSendVIASMSClick(Sender: TObject);
procedure btnRingToneUploadClick(Sender: TObject);
procedure btnRingToneWriteClick(Sender: TObject);
procedure rgrpDTMFTypeClick(Sender: TObject);
procedure ProcessDTMF(sender : TObject);
procedure btnCallClick(Sender: TObject);
procedure btnHangupClick(Sender: TObject);
procedure UpDown1Click(Sender: TObject; Button: TUDBtnType);
procedure Button7Click(Sender: TObject);
procedure Button8Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure cmboLogoTypeClick(Sender: TObject);
procedure btnClearClick(Sender: TObject);
procedure btnLoadfromfileClick(Sender: TObject);
procedure btnDownloadClick(Sender: TObject);
procedure LogoEditorSentViaSMS(Sent: Boolean);
procedure LogoEditorGridPos(X, Y: Integer);
procedure Notebook1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure Button1Click(Sender: TObject);
procedure btnSaveLogoClick(Sender: TObject);
procedure btnSendToPhoneClick(Sender: TObject);
procedure Button17Click(Sender: TObject);
procedure Button19Click(Sender: TObject);
procedure btnResetClick(Sender: TObject);
procedure FBUS1RingToneSent(Sent: Boolean);
procedure FBUS1IncommingCall(Number: String);
procedure PhoneInfo1Click(Sender: TObject);
procedure PhoneBook1Click(Sender: TObject);
procedure SMS1Click(Sender: TObject);
procedure SpeedDial1Click(Sender: TObject);
procedure RingTone1Click(Sender: TObject);
procedure Logo1Click(Sender: TObject);
procedure DTMF1Click(Sender: TObject);
procedure NetMonitor1Click(Sender: TObject);
procedure btnChangeProviderClick(Sender: TObject);
procedure btnExportClick(Sender: TObject);
private
{ Private declarations }
fWin95:Boolean;
public
{ Public declarations }
sApplicationPath:string;
end;
var
frmMain: TfrmMain;
Const
fbOutgoingMessage = 11;
fbDeliveryReport = 12;
fbIncommingMessage = 13;
implementation
uses ComSelect,Misc,newpbEntry, SendSMS, SMSReply,providers,ConnectionEst;
{$R *.DFM}
procedure TfrmMain.FormShow(Sender: TObject);
begin
tmpTimer.Enabled:=true;
end;
procedure TfrmMain.tmpTimerTimer(Sender: TObject);
begin
tmpTimer.enabled:=false;
show;
bFirstTime:=true;
//sApplicationPath:=ExtractFilePath(Paramstr(0));
sApplicationPath:=GetCurrentDir+'\';
FBUS1.Comport:=TCOMPORT(ComportToUse); //Set the comport to use
If Not FileExists(sApplicationPath+'PhoneBook.da0') then
begin
messagedlg('Since this is the first time you have run this application, we need to do a couple of things. Please press Ok and wait a few moments',mtInformation,[mbOk],0);
Connect1Click(self);
CompareAndUpdatePhoneBooks(fbSimMemory); //demo only syncronizes the sim memory
messagedlg('thank you...all the information required has been gathered',mtInformation,[mbOk],0);
end
else
Connect1Click(self);
end;
procedure TfrmMain.FBUS1Connected(iResult: Integer; msg: String);
begin
//0 = connected (or no error), 25 = Disconnected
case iResult of
0: begin
MFBUSStatusBar1.panels[0].text:='Connected to '+ FBUS1.PhoneInfo.Model;
Connect1.enabled:=false;
Disconnect1.enabled:=True;
if bFirstTime then
bFirstTime:=False
else
begin
try // we do a try and except here as this data might not be availible first time round
bFirstTime:=False;
if FormatDateTime('dd MMM YYYY',FBUS1.GetTime) <> '30 Dec 1899' then
DateTimeLabel.caption:=DateTimetoStr(FBUS1.GetTime)
else
DateTimeLabel.caption:='';
except
end;
end
end;
25: begin
bFirstTime:=true;
MFBUSStatusBar1.panels[0].text:=msg;
Connect1.enabled:=True;
Disconnect1.enabled:=False;
MFBUSStatusBar1.Panels[0].text:='Disconnected';
MFBUSStatusBar1.panels[1].text:='';
exit;
end;
else
begin
MessageDlg(msg,mtWarning,[mbOk],0);
bContinueLoop:=false;
if frmConnEst.visible then
begin
frmConnEst.Label1.caption:='Error Connecting to Phone';
end;
end;
end
end;
procedure TfrmMain.Connect1Click(Sender: TObject);
var
ListViewItem : TListItem;
begin
Application.createForm(TfrmConnEst,frmConnEst);
frmConnEst.show;
application.ProcessMessages;
sleep(500);
FBus1.Connect;
repeat
application.processmessages;
until (fBUS1.Connected) or (bContinueLoop=false);
if fBUS1.Connected then
begin
if frmConnEst.visible then frmConnEst.close;
sleep(500);
if FormatDateTime('dd MMM YYYY',FBUS1.GetTime) <> '30 Dec 1899' then
DateTimeLabel.caption:=DateTimetoStr(FBUS1.GetTime)
else
DateTimeLabel.caption:='';
lvPhoneInfo.items.clear;
ListViewItem:=lvPhoneInfo.items.add;
ListViewItem.Caption:='IMEI';
ListViewItem.Subitems.add(FBUS1.PhoneInfo.IMEI);
ListViewItem:=lvPhoneInfo.items.add;
ListViewItem.Caption:='SW Version';
ListViewItem.Subitems.add(FBUS1.PhoneInfo.SWVersion);
ListViewItem:=lvPhoneInfo.items.add;
ListViewItem.Caption:='HW Version';
ListViewItem.Subitems.add(FBUS1.PhoneInfo.HWVersion);
ListViewItem:=lvPhoneInfo.items.add;
ListViewItem.Caption:='Model';
ListViewItem.Subitems.add(FBUS1.PhoneInfo.Model);
ListViewItem:=lvPhoneInfo.items.add;
ListViewItem.Caption:='Sw Date';
ListViewItem.Subitems.add(FBUS1.PhoneInfo.SWDate);
lvNetworkInfo.items.Clear;
ListViewItem:=lvNetworkInfo.items.add;
ListViewItem.Caption:='Provider Name';
ListViewItem.Subitems.add(FBUS1.NetworkInfo.NetworkCode);
ListViewItem:=lvNetworkInfo.items.add;
ListViewItem.Caption:='Country';
ListViewItem.Subitems.add(FBUS1.NetworkInfo.Country);
ListViewItem:=lvNetworkInfo.items.add;
ListViewItem.Caption:='SMS Center';
ListViewItem.Subitems.add(FBUS1.NetworkInfo.SMSCenter);
ListViewItem:=lvNetworkInfo.items.add;
ListViewItem.Caption:='Cell ID';
ListViewItem.Subitems.add(FBUS1.NetworkInfo.CellID);
ListViewItem:=lvNetworkInfo.items.add;
ListViewItem.Caption:='LAC';
ListViewItem.Subitems.add(FBUS1.NetworkInfo.LAC);
end;
end;
procedure TfrmMain.Disconnect1Click(Sender: TObject);
begin
FBus1.PhoneBeep;
FBus1.Disconnect;
MFBUSStatusBar1.Panels[0].text:='Disconnected';
MFBUSStatusBar1.panels[1].text:='';
end;
procedure TfrmMain.ChangeComport1Click(Sender: TObject);
begin
ChangeComport;
// FBUS1.Comport:=TCOMPORT(ComportToUse);
end;
procedure TfrmMain.SoftReset1Click(Sender: TObject);
begin
fBus1.ResetPhone(rsSoft);
end;
procedure TfrmMain.HardReset1Click(Sender: TObject);
begin
fBus1.ResetPhone(rsHard);
end;
procedure TfrmMain.Button3Click(Sender: TObject);
begin
FBUS1.SetAlarmTime(StrToTime(txtTime.text));
end;
procedure TfrmMain.FormCreate(Sender: TObject);
begin
bFirstTime:=true;
//sApplicationPath:=ExtractFilePath(Paramstr(0));
sApplicationPath:=GetCurrentDir+'\';
bContinueLoop:=true;
Outlook1.ActiveTab:=1;
Notebook1.PageIndex:=0;
cmbpMemType.itemindex:=1;
rgrpDTMFType.itemindex:=0;
cmboLogoType.itemindex:=2;
fWin95:= (GetVersion() and $80000000)<>0;
if Not fWin95 then
begin
rgrpPlayDevice.Items.add('PC Speaker');
rgrpPlayDevice.Items.add('MIDI Device');
rgrpPlayDevice.Items.add('Phone');
rgrpPlayDevice.itemindex:=1;
end
else
begin
rgrpPlayDevice.Items.add('MIDI Device');
rgrpPlayDevice.Items.add('Phone');
rgrpPlayDevice.itemindex:=0;
end
end;
procedure TfrmMain.Outlook1ItemClick(Sender: TObject; Item: String);
begin
if item='Phone Book' then
begin
lblText.caption:='Phone Book';
if fBus1.Connected then
begin
application.processmessages;
//LoadPhoneBook;
PhoneBookGet(TMemType(cmbpMemType.itemindex));
end
else
Notebook1.PageIndex:=1;
end;
if item='SMS' then
begin
Notebook1.PageIndex:=2;
lblText.caption:='SMS Messages';
application.processmessages;
cmboSMSMemType.itemindex:=2;
LoadSMSMessages(cmboSMSMemType.itemindex+11);
end;
if item='Ring Tone' then
begin NoteBook1.pageindex:=4; lblText.caption:='Ringtone'; end;
if item='Information' then
begin NoteBook1.pageindex:=0; lblText.caption:='Phone Information'; end;
if Item='Speed Dial' then
begin NoteBook1.pageindex:=3; lblText.caption:='Speed Dial'; end;
if Item='DTMF' then
begin NoteBook1.pageindex:=5; lblText.caption:='DTMF'; end;
if Item='Logo' then
begin NoteBook1.pageindex:=6; lblText.caption:='Logo'; end;
if Item='Net Monitor' then
begin NoteBook1.pageindex:=7; lblText.caption:='Net Monitor'; end;
end;
procedure TfrmMain.cmbpMemTypeClick(Sender: TObject);
begin
if fBus1.Connected then
LoadPhoneBook
else
Notebook1.PageIndex:=1;
end;
procedure TfrmMain.btnPBRefreshClick(Sender: TObject);
begin
if messageDlg('This will check the Phone book entries on the Phone with the local database. This may take a few minutes. Continue?',mtConfirmation,[mbYes,mbNo],0)=mrYes then
begin
if fBus1.Connected then
//LoadPhoneBook
CompareAndUpdatePhoneBooks(TMemType(cmbpMemType.itemindex))
else
begin
Notebook1.PageIndex:=1;
messagedlg('The phone is not connected. Plece connect phone and try again',mtinformation,[mbOk],0);
end;
end;
end;
procedure TfrmMain.btnPBAddnewClick(Sender: TObject);
begin
application.Createform(TfrmAddNewPBEntry,frmAddNewPBEntry);
frmAddNewPBEntry.execute;
//if frmAddNewPBEntry.execute then
// btnPBRefreshClick(self);
end;
procedure TfrmMain.Exit1Click(Sender: TObject);
begin
if fBus1.Connected then Disconnect1Click(Self);
application.terminate;
end;
procedure TfrmMain.btnPBDeleteClick(Sender: TObject);
begin
if messagedlg('Are you sure you want to delete this entry?',mtConfirmation,[mbYes,mbNo],0) = mrYes then
begin
//FBUS1.PhoneBook.DeleteEntry(TMemType(cmbpMemType.itemindex),lvPhoneBook.Selected.Caption,lvPhoneBook.items[lvPhoneBook.Selected.Index].SubItems[1]);
//lvPhoneBook.Items.Delete(lvPhoneBook.Selected.Index);
PhoneBookDelete(lvPhoneBook.Selected.Caption,lvPhoneBook.items[lvPhoneBook.Selected.Index].SubItems[0],TMemType(cmbpMemType.itemindex));
end;
end;
procedure TfrmMain.imgPhoneMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
image4.visible:=false;
end;
procedure TfrmMain.imgPhoneMouseMove(Sender: TObject; Shift: TShiftState;
X, Y: Integer);
var
bNormalCursor:boolean;
begin
bNormalCursor:=true;
if ((y>207) and (y<220)) then
begin
bNormalCursor:=false;
if((x>11) and (x<31)) or((x>39) and (x<59)) or ((x>65) and (x<85)) then
screen.Cursor:=crHandPoint
else
screen.Cursor:=crDefault;
end;
if ((y>225) and (y<236)) then
begin
bNormalCursor:=false;
if((x>11) and (x<31)) or((x>39) and (x<59)) or ((x>65) and (x<85)) then
screen.Cursor:=crHandPoint
else
screen.Cursor:=crDefault;
end;
if ((y>243) and (y<256)) then
begin
bNormalCursor:=false;
if((x>11) and (x<31)) or((x>39) and (x<59)) or ((x>65) and (x<85)) then
screen.Cursor:=crHandPoint
else
screen.Cursor:=crDefault;
end;
if bNormalCursor then
screen.Cursor:=crDefault;
end;
procedure TfrmMain.imgPhoneMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if ((y>207) and (y<220)) then //first row of keyboad
begin
if ((x>11) and (x<31)) then
FindSpeedDialDetails(1); // - Only keys 2 - 9 are uesed for speed dials
if ((x>39) and (x<59)) then
FindSpeedDialDetails(2);
if ((x>65) and (x<85)) then
FindSpeedDialDetails(3);
end;
if ((y>225) and (y<236)) then //Second row of keyboad
begin
if ((x>11) and (x<31)) then
FindSpeedDialDetails(4);
if ((x>39) and (x<59)) then
FindSpeedDialDetails(5);
if ((x>65) and (x<85)) then
FindSpeedDialDetails(6);
end;
if ((y>243) and (y<256)) then //Third row of keyboad
begin
if ((x>11) and (x<31)) then
FindSpeedDialDetails(7);
if ((x>39) and (x<59)) then
FindSpeedDialDetails(8);
if ((x>65) and (x<85)) then
FindSpeedDialDetails(9);
end;
end;
procedure TfrmMain.FindSpeedDialDetails(iValue:integer);
var
PhoneBookEntry : TPhoneBookEntry;
begin
PhoneBookEntry:=FBUS1.PhoneBook.FindSpeedDial(iValue);
lblLocation.caption:=IntToStr(PhoneBookEntry.location);
lblSpeedPosition.caption:=IntToStr(PhoneBookEntry.location);
txtSpeedName.text:='';
txtSpeedNumber.text:='';
txtSpeedGroup.text:='';
txtSpeedName.text:=PhoneBookEntry.name;
txtSpeedNumber.text:=PhoneBookEntry.number;
txtSpeedGroup.text:=IntToStr(PhoneBookEntry.Group);
cmboSpeedMem.itemindex:=Ord(PhoneBookEntry.memType);
btnAddSpeedDial.visible:=false;
lvSpeedDial.visible:=false;
if (PhoneBookEntry.name='') and (PhoneBookEntry.number='') then
begin
txtSpeedName.enabled:=True;
txtSpeedNumber.enabled:=True;
txtSpeedGroup.enabled:=True;
btnAddSpeedDial.visible:=True;
lvSpeedDial.items.clear;
lvSpeedDial.items:=lvPhoneBook.items;
lvSpeedDial.visible:=True;
end;
end;
procedure TfrmMain.btnAddSpeedDialClick(Sender: TObject);
begin
//.$IFDEF REGISTRED}
if lvSpeedDial.selcount =0 then
messagedlg('Select the name and number from the list of PhoneBook entries.',mtInformation,[mbOk],0)
else
begin
//FBUS1.PhoneBook.AddSpeedDial(StrToInt(lblLocation.caption),lvSpeedDial.Selected.Caption,TmemType(cmboSpeedMem.itemindex));
FBUS1.PhoneBook.AddSpeedDial(StrToInt(lblLocation.caption),lvSpeedDial.Selected.Caption,TmemType(cmboSpeedMem.itemindex),(lvSpeedDial.Selected.index+1));
lvSpeedDial.visible:=false;
FindSpeedDialDetails(StrToInt(lblLocation.caption)); //refresh the screen with the new entry
end;
//.$ELSE}
// messagedlg('This Feature is not availble in the Demo version',mtInformation,[mbOk],0);
//.$ENDIF}
end;
procedure TfrmMain.btnEditSpeedDialClick(Sender: TObject);
begin
//.$IFDEF REGISTRED}
if lvSpeedDial.visible=True then
begin
FBUS1.PhoneBook.EditSpeedDial(StrToInt(lblLocation.caption),txtSpeedName.text,TmemType(cmboSpeedMem.itemindex),(lvSpeedDial.Selected.index+1));
lvSpeedDial.visible:=false;
FindSpeedDialDetails(StrToInt(lblLocation.caption)); //refresh the screen with the new entry
end
else
begin
lvSpeedDial.items.clear;
lvSpeedDial.items:=lvPhoneBook.items;
lvSpeedDial.visible:=True;
end;
//.$ELSE}
// messagedlg('This Feature is not availble in the Demo version',mtInformation,[mbOk],0);
//.$ENDIF}
end;
procedure TfrmMain.cmboSMSMemTypeClick(Sender: TObject);
begin
LoadSMSMessages(cmboSMSMemType.itemindex+11);
end;
procedure TfrmMain.FBUS1DelivaryCount(iSMSCount: Integer);
begin
if cmboSMSMemType.itemindex = 0 then smsMemory.position:=iSMSCount;
end;
procedure TfrmMain.FBUS1InboxCount(iSMSCount: Integer);
begin
if cmboSMSMemType.itemindex = 2 then smsMemory.position:=iSMSCount;
end;
procedure TfrmMain.FBUS1OutBoxCount(iSMSCount: Integer);
begin
if cmboSMSMemType.itemindex = 1 then smsMemory.position:=iSMSCount;
end;
procedure TfrmMain.lvSMSClick(Sender: TObject);
begin
if lvSMS.SelCount >0 then
btnDeleteSMS.Visible:=true
else
btnDeleteSMS.Visible:=false;
end;
procedure TfrmMain.btnSMSSendSMSClick(Sender: TObject);
begin
application.CreateForm(TfrmSendSMS,frmSendSMS);
frmSendSMS.showmodal;
end;
procedure TfrmMain.lvSMSDblClick(Sender: TObject);
var
sSender:string;
begin
if lvSMS.SelCount >0 then
begin
Application.createForm(TfrmSMSView,frmSMSView);
frmSMSView.lblSMSDate.caption:=lvSMS.Selected.Caption;
sSender:=FindSendersName(lvSMS.items[lvSMS.Selected.Index].SubItems[0]);
if sSender ='' then
frmSMSView.lblSMSFrom.caption:=lvSMS.items[lvSMS.Selected.Index].SubItems[0]
else
frmSMSView.lblSMSFrom.caption:=lvSMS.items[lvSMS.Selected.Index].SubItems[0]+', '+sSender;
frmSMSView.moMessage.text:=lvSMS.items[lvSMS.Selected.Index].SubItems[2];
frmSMSView.showmodal;
end;
end;
function TfrmMain.FindSendersName(sNumber:string):string;
var
iPos:integer;
res:string;
begin
res:='';
for iPos:=0 to lvPhoneBook.items.count-1 do
if Pos(Copy(sNumber,4,length(sNumber)),lvPhoneBook.items[iPos].subitems[0]) >0 then
begin
res:= lvPhoneBook.items[ipos].caption;
break;
end;
Result:=res;
end;
procedure TfrmMain.FBUS1SMSSent;
begin
frmSendSMS.close;
MessageDlg('SMS Delivered',mtInformation,[mbok],0);
end;
procedure TfrmMain.FBUS1SMSSendError;
begin
MessageDlg('There was an erro Delivering the SMS Message.',mtInformation,[mbok],0);
end;
procedure TfrmMain.FBUS1NewSMSMessage;
begin
messagedlg('You have received a new SMS Message.',mtInformation,[mbOk],0);
LoadSMSMessages(fbIncommingMessage);
end;
procedure TfrmMain.btnDeleteSMSClick(Sender: TObject);
begin
if lvSMS.SelCount >0 then
begin
fBus1.SMS.DeleteSMSMessage(cmboSMSMemType.ItemIndex,Trim(Filtercr(lvSMS.items[lvSMS.Selected.Index].SubItems[2])));
LoadSMSMessages(cmboSMSMemType.ItemIndex);
btnDeleteSMS.visible:=false;
end;
end;
procedure TfrmMain.btnPBSendSMSClick(Sender: TObject);
begin
if lvPhoneBook.selcount >0 then
begin
application.CreateForm(TfrmSendSMS,frmSendSMS);
frmSendSMS.txtDestination.text:=lvPhoneBook.items[lvPhoneBook.Selected.Index].SubItems[0];
frmSendSMS.showmodal;
end;
end;
procedure TfrmMain.btnPlayToneClick(Sender: TObject);
begin
if (FileListBox1.FileName <> '') and (rgrpPlayDevice.itemindex<>-1) and (IsRingTone(FileListBox1.Filename)) then
begin
FBUS1.RingTone.ReadFile(FileListBox1.Filename);
if Not fWin95 then
FBUS1.RingTone.Play(rgrpPlayDevice.itemindex)
else
FBUS1.RingTone.Play(rgrpPlayDevice.itemindex+1);
end;
end;
procedure TfrmMain.btnSendVIASMSClick(Sender: TObject);
var
sInput:string;
begin
if (FileListBox1.FileName <> '') and (IsRingTone(FileListBox1.Filename)) then
begin
sInput:=InputBox('Destination', 'Please enter the destination phone number','');
if Trim(sInput) <>'' then
begin
FBUS1.RingTone.ReadFile(FileListBox1.Filename);
FBUS1.RingTone.SendAsSMS(sInput);
end;
end;
end;
procedure TfrmMain.btnRingToneUploadClick(Sender: TObject);
begin
if (FileListBox1.FileName <> '') and (IsRingTone(FileListBox1.Filename)) then
begin
FBUS1.RingTone.Upload;
end;
end;
procedure TfrmMain.btnRingToneWriteClick(Sender: TObject);
begin
if (FileListBox1.FileName <> '') and (IsRingTone(FileListBox1.Filename)) then
FBUS1.RingTone.WriteFile(FileListBox1.FileName);
end;
procedure TfrmMain.rgrpDTMFTypeClick(Sender: TObject);
begin
if rgrpDTMFType.itemindex=1 then
begin
btnCall.enabled:=true;
btnhangup.enabled:=true;
txtVoiceCall.Visible:=true;
end
else
begin
btnCall.enabled:=False;
btnhangup.enabled:=False;
txtVoiceCall.Visible:=False;
end;
end;
procedure TfrmMain.ProcessDTMF(sender : TObject);
var
sTagIndex:string;
begin
if FBus1.Connected then
With Sender as TButton do
begin
sTagIndex:=IntToStr(TButton(Sender).tag);
if sTagIndex = '99' then sTagIndex:='+';
if sTagIndex = '88' then sTagIndex:='#';
if txtVoiceCall.Visible then
txtVoiceCall.text:=txtVoiceCall.text+sTagIndex
else
FBUS1.SendDTMF(sTagIndex);
end;
end;
procedure TfrmMain.btnCallClick(Sender: TObject);
begin
if FBus1.Connected then FBUS1.MakeVoiceCall(txtVoiceCall.text);
end;
procedure TfrmMain.btnHangupClick(Sender: TObject);
begin
if FBus1.Connected then FBUS1.HangupPhone;
end;
procedure TfrmMain.UpDown1Click(Sender: TObject; Button: TUDBtnType);
function FilterHash10(sData:string):string;
var
iPos:integer;
sNewString:String;
begin
sNewString:='';
for ipos:=0 to length(sData)-1 do
if sData[ipos+1] = #10 then
sNewString:=sNewString+#13#10
else
sNewString:=sNewString+sData[ipos+1];
result:=sNewString;
end;
begin
moNetMonitor.lines.clear;
moNetMonitor.lines.add(FilterHash10(FBus1.NetMon(edit1.text)));
end;
procedure TfrmMain.Button7Click(Sender: TObject);
begin
edit1.text:='0';
moNetMonitor.lines.clear;
FBus1.NetMon('devel');
end;
procedure TfrmMain.Button8Click(Sender: TObject);
begin
edit1.text:='0';
moNetMonitor.lines.clear;
FBus1.NetMon('field');
end;
procedure TfrmMain.Button6Click(Sender: TObject);
begin
edit1.text:='0';
moNetMonitor.lines.clear;
FBus1.NetMon('off')
end;
procedure TfrmMain.cmboLogoTypeClick(Sender: TObject);
begin
case cmboLogoType.itemindex of
0: LogoEditor.LogoType:=fbNoLogo;
1: LogoEditor.LogoType:=fbStartupLogo;
2: LogoEditor.LogoType:=fbOperatorLogo;
3: LogoEditor.LogoType:=fbCallerLogo;
end;
end;
procedure TfrmMain.btnClearClick(Sender: TObject);
begin
LogoEditor.ClearLogo;
end;
procedure TfrmMain.btnLoadfromfileClick(Sender: TObject);
begin
if dlgOpenImageFile.execute then
begin
LogoEditor.ClearLogo;
cmboLogoTypeclick(self);
screen.cursor:=crHourglass;
application.processmessages;
dlgOpenImageFile.InitialDir:=sApplicationPath;
if (extractfileext(dlgOpenImageFile.Filename) = '.bmp') or (extractfileext(dlgOpenImageFile.Filename) = '.jpg') or (extractfileext(dlgOpenImageFile.Filename) = '.gif') then
LogoEditor.LoadBitmapForLogo(dlgOpenImageFile.Filename);
if (extractfileext(dlgOpenImageFile.Filename) = '.nol') or (extractfileext(dlgOpenImageFile.Filename) = '.ngg') or (extractfileext(dlgOpenImageFile.Filename) = '.nlm') then
begin
LogoEditor.LoadLogoFromFile(dlgOpenImageFile.Filename);
end;
end;
screen.cursor:=crDefault;
end;
procedure TfrmMain.btnDownloadClick(Sender: TObject);
begin
screen.cursor:=crHourGlass;
LogoEditor.Download(cmboLogoType.itemIndex);
screen.cursor:=crdefault;
end;
procedure TfrmMain.LogoEditorSentViaSMS(Sent: Boolean);
begin
if Sent then
messageDlg('The logo has successfully been sent',mtInformation,[mbOk],0)
else
messageDlg('The logo was not sent due to an error',mtInformation,[mbOk],0);
end;
procedure TfrmMain.LogoEditorGridPos(X, Y: Integer);
begin
MFBUSStatusBar1.Panels[1].text:='Mouse Pos: '+Inttostr(Trunc(x / 6)+1)+'/'+inttostr(Trunc(y / 6)+1);
end;
procedure TfrmMain.Notebook1MouseMove(Sender: TObject; Shift: TShiftState;
X, Y: Integer);
begin
MFBUSStatusBar1.Panels[1].text:='';
end;
procedure TfrmMain.Button1Click(Sender: TObject);
var
sDestination:String;
begin
if (cmboLogoType.itemindex = 1) and ( FBUS1.PhoneInfo.Model <> 'Nokia 3310') and ( FBUS1.PhoneInfo.Model <> 'Nokia 3210') and ( FBUS1.PhoneInfo.Model <> 'Nokia 6110') then
messageDlg('Sorry. Your phone cannot send a "Startup Logo" as this logo type is not supportd by your phone',mtInformation,[mbOk],0)
else
begin
sDestination:=Inputbox('destination number','Please Enter the destination number','');
if length(sDestination) >0 then
begin
screen.cursor:=crHourGlass;
LogoEditor.SendLogoViaSMS(sDestination);
screen.cursor:=crDefault;
end;
end;
end;
procedure TfrmMain.btnSaveLogoClick(Sender: TObject);
begin
LogoEditor.SaveLogoToFile('c:\test.nol');
messagedlg('The logo has been saved to "c:\test.nol" by default',mtInformation,[mbOk],0);
end;
procedure TfrmMain.btnSendToPhoneClick(Sender: TObject);
begin
screen.cursor:=crHourglass;
LogoEditor.SendLogoToPhone;
screen.cursor:=crDefault;
end;
procedure TfrmMain.Button17Click(Sender: TObject);
var
iLeft,iTop:integer;
begin
if fFont=nil then
begin
fFont:=TFont.Create;
fFont.Size:=6;
fFont.Name:='Arial';
fFont.Style:=[];
end;
DisplayLogo.canvas.font.size:=fFont.Size;
DisplayLogo.canvas.font.name:=fFont.Name;
DisplayLogo.canvas.font.style:=fFont.Style;
iLeft:=((DisplayLogo.width div 2) - (DisplayLogo.canvas.textwidth(txtLogo.text) div 2))+1;
iTop:=((DisplayLogo.height div 2) - (DisplayLogo.canvas.textHeight(txtLogo.text) div 2))+1;
DisplayLogo.canvas.brush.style:=bsClear;
DisplayLogo.canvas.TextOut(iLeft,iTop,txtLogo.text);
DisplayLogo.update;
LogoEditor.TextToLogo(DisplayLogo);
end;
procedure TfrmMain.Button19Click(Sender: TObject);
begin
if FontDialog1.execute then
fFont:=FontDialog1.Font;
end;
procedure TfrmMain.btnResetClick(Sender: TObject);
begin
if LogoEditor.ResetLogo(cmboLogoType.itemindex) then
begin
if MessageDlg('Logo Reset. Clear Logo editor?',mtinformation,[mbYes,mbNo],0) = mryes then
btnClearClick(Self);
end
else
messageDlg('Error: Logo Not Reset',mtinformation,[mbOk],0);
end;
procedure TfrmMain.FBUS1RingToneSent(Sent: Boolean);
begin
if Sent then
messageDlg('The Ringtone has successfully been sent',mtInformation,[mbOk],0)
else
messageDlg('The Ringtone was not sent due to an error',mtInformation,[mbOk],0);
end;
procedure TfrmMain.FBUS1IncommingCall(Number: String);
begin
showmessage(FindNumber(number));
end;
procedure TfrmMain.PhoneInfo1Click(Sender: TObject);
begin
Outlook1.activeTab:=1;
NoteBook1.pageindex:=0;
lblText.caption:='Phone Information';
end;
procedure TfrmMain.PhoneBook1Click(Sender: TObject);
begin
Outlook1.activeTab:=2;
PhoneBookGet(TMemType(cmbpMemType.itemindex));
if fBus1.Connected then
begin
lblText.caption:='Phone Book';
application.processmessages;
end
else
Notebook1.PageIndex:=1;
end;
procedure TfrmMain.SMS1Click(Sender: TObject);
begin
lblText.caption:='SMS Messages';
Outlook1.activeTab:=2;
Notebook1.PageIndex:=2;
application.processmessages;
cmboSMSMemType.itemindex:=2;
LoadSMSMessages(cmboSMSMemType.itemindex+11);
end;
procedure TfrmMain.SpeedDial1Click(Sender: TObject);
begin
lblText.caption:='Speed Dial';
Outlook1.activeTab:=2;
NoteBook1.pageindex:=3;
end;
procedure TfrmMain.RingTone1Click(Sender: TObject);
begin
lblText.caption:='Ringtone';
Outlook1.activeTab:=2;
NoteBook1.pageindex:=4;
end;
procedure TfrmMain.Logo1Click(Sender: TObject);
begin
lblText.caption:='Logo';
Outlook1.activeTab:=2;
NoteBook1.pageindex:=6;
end;
procedure TfrmMain.DTMF1Click(Sender: TObject);
begin
lblText.caption:='DTMF';
Outlook1.activeTab:=2;
NoteBook1.pageindex:=5;
end;
procedure TfrmMain.NetMonitor1Click(Sender: TObject);
begin
lblText.caption:='Net Monitor';
Outlook1.activeTab:=2;
NoteBook1.pageindex:=7;
end;
procedure TfrmMain.btnChangeProviderClick(Sender: TObject);
begin
application.createform(TfrmProviders,frmProviders);
frmProviders.ShowProviders(FBUS1.NetworkInfo.NetworkCode,FBUS1.NetworkInfo.Country);
end;
procedure TfrmMain.btnExportClick(Sender: TObject);
begin
LogoEditor.ExportLogoToFile('C:\ExportedLogo.bmp','BMP');
LogoEditor.ExportLogoToFile('C:\ExportedLogo.gif','GIF');
LogoEditor.ExportLogoToFile('C:\ExportedLogo.jpg','JPG');
messagedlg('3 logos saved to file. 1 BMP, 1 GIF and 1 JPG. Saved to C:\ExportedLogo.xxx',mtinformation,[mbOk],0);
end;
end.