📄 main.pas
字号:
unit main;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, ExtCtrls, ToolWin, ComCtrls, ImgList, Buttons, StdCtrls, about,
Grids, DBGrids, DB, ADODB,global,com;
type
TForm_main = class(TForm)
Panel_top_main: TPanel;
Panel_left: TPanel;
StatusBar1: TStatusBar;
Splitter1: TSplitter;
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
N7: TMenuItem;
N8: TMenuItem;
N9: TMenuItem;
N10: TMenuItem;
N11: TMenuItem;
N12: TMenuItem;
N13: TMenuItem;
N14: TMenuItem;
ImageList_menu: TImageList;
Panel_main: TPanel;
PopupMenu1: TPopupMenu;
N_reloadAll: TMenuItem;
N21: TMenuItem;
ImageList_toolbar_phonebook: TImageList;
Splitter2: TSplitter;
Panel_lefttop: TPanel;
Panel_leftbottom: TPanel;
SpeedButton_phonebook: TSpeedButton;
SpeedButton_shortmessage: TSpeedButton;
SpeedButton_callrecord: TSpeedButton;
Notebook_subitem: TNotebook;
ListView_phonebook_sub: TListView;
ImageList_subitem: TImageList;
ListView_callrecord_sub: TListView;
ListView_ShortMessage_sub: TListView;
N16: TMenuItem;
N17: TMenuItem;
CoolBar1: TCoolBar;
ToolBar_phonebook: TToolBar;
ToolButton_reloadPHB: TToolButton;
ToolButton2: TToolButton;
ToolButton_AddPHB: TToolButton;
ToolButton_delPHB: TToolButton;
Timer_systemtime: TTimer;
N_reloadPHB: TMenuItem;
N_reloadSMS: TMenuItem;
ToolBar_shortmessage: TToolBar;
ToolButton_reloadSMS: TToolButton;
ToolButton8: TToolButton;
ToolButton_AddSMS: TToolButton;
ToolButton_delSMS: TToolButton;
ToolButton11: TToolButton;
ToolButton_ReSMS: TToolButton;
ToolButton_FWSMS: TToolButton;
ToolButton_editSMS: TToolButton;
ToolButton5: TToolButton;
ToolButton6: TToolButton;
ToolBar_callrecord: TToolBar;
ToolButton_reloadCR: TToolButton;
ToolButton15: TToolButton;
ToolButton_delCR: TToolButton;
ToolButton18: TToolButton;
ADOQuery_phb: TADOQuery;
DataSource1: TDataSource;
ADOConnection1: TADOConnection;
ADOQuery_phbSerialNo: TIntegerField;
ADOQuery_phbName: TWideStringField;
ADOQuery_phbMemo: TWideStringField;
Notebook_maintable: TNotebook;
ListView_phonebook_main: TListView;
ListView_callrecord_main: TListView;
ADOQuery_phbPhoneNo: TWideStringField;
ADOQuery_phbHomeNo: TWideStringField;
ADOQuery_phbOfficeNo: TWideStringField;
N22: TMenuItem;
ListView_shortmessage_main: TListView;
ADOQuery_sms: TADOQuery;
Query1: TADOQuery;
ADOQuery_smsSerialNo: TAutoIncField;
ADOQuery_smsStatus: TWideStringField;
ADOQuery_smsPhoneNo: TWideStringField;
ADOQuery_smsName: TWideStringField;
ADOQuery_smsDate: TWideStringField;
ADOQuery_smsMessage: TMemoField;
Panel_phb: TPanel;
Panel_sms: TPanel;
Panel_cr: TPanel;
ImageList_toolbar_shortmessage: TImageList;
ImageList_toolbar_callrecord: TImageList;
N15: TMenuItem;
N18: TMenuItem;
N19: TMenuItem;
N20: TMenuItem;
N23: TMenuItem;
N24: TMenuItem;
N25: TMenuItem;
N26: TMenuItem;
N27: TMenuItem;
N28: TMenuItem;
N29: TMenuItem;
N30: TMenuItem;
N32: TMenuItem;
N33: TMenuItem;
N31: TMenuItem;
N34: TMenuItem;
N35: TMenuItem;
N36: TMenuItem;
N37: TMenuItem;
N38: TMenuItem;
N39: TMenuItem;
N40: TMenuItem;
N41: TMenuItem;
N42: TMenuItem;
N43: TMenuItem;
procedure N14Click(Sender: TObject);
procedure SpeedButton_phonebookClick(Sender: TObject);
procedure SpeedButton_shortmessageClick(Sender: TObject);
procedure SpeedButton_callrecordClick(Sender: TObject);
procedure N17Click(Sender: TObject);
procedure Timer_systemtimeTimer(Sender: TObject);
procedure ListView_phonebook_mainColumnClick(Sender: TObject;
Column: TListColumn);
procedure ListView_phonebook_mainDblClick(Sender: TObject);
procedure N10Click(Sender: TObject);
procedure ListView_callrecord_mainColumnClick(Sender: TObject;
Column: TListColumn);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormCreate(Sender: TObject);
procedure N_reloadCRClick(Sender: TObject);
procedure ListView_callrecord_subClick(Sender: TObject);
procedure N22Click(Sender: TObject);
procedure ToolButton_delCRClick(Sender: TObject);
procedure N_reloadPHBClick(Sender: TObject);
procedure ToolButton_AddPHBClick(Sender: TObject);
procedure ToolButton_delPHBClick(Sender: TObject);
procedure ListView_phonebook_subClick(Sender: TObject);
procedure N_reloadAllClick(Sender: TObject);
procedure ListView_ShortMessage_subClick(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure N_reloadSMSClick(Sender: TObject);
procedure ListView_shortmessage_mainDblClick(Sender: TObject);
procedure ListView_shortmessage_mainColumnClick(Sender: TObject;
Column: TListColumn);
procedure ToolButton_delSMSClick(Sender: TObject);
procedure ToolButton_AddSMSClick(Sender: TObject);
procedure ToolButton_ReSMSClick(Sender: TObject);
procedure ToolButton_FWSMSClick(Sender: TObject);
procedure ToolButton_editSMSClick(Sender: TObject);
procedure N26Click(Sender: TObject);
procedure N27Click(Sender: TObject);
procedure N30Click(Sender: TObject);
procedure N33Click(Sender: TObject);
procedure N28Click(Sender: TObject);
procedure N31Click(Sender: TObject);
procedure N34Click(Sender: TObject);
procedure N35Click(Sender: TObject);
procedure N37Click(Sender: TObject);
procedure N39Click(Sender: TObject);
procedure N41Click(Sender: TObject);
procedure N42Click(Sender: TObject);
procedure N43Click(Sender: TObject);
procedure ListView_callrecord_mainDblClick(Sender: TObject);
private
{ Private declarations }
FLastIndex_phonebook:Integer;
FLastIndex_shortmessage:Integer;
FLastIndex_callrecord:Integer;
FLastViewState_phonebook:TViewState_PHB;
FLastViewState_ShortMessage:TViewState_SMS;
FLastViewState_callrecord:TViewState_CR;
procedure ListView_PhonebookSort(sort:string);
procedure ListView_ShortMessageSort(sort:string);
procedure ListView_CallRecordSort(sort:string);
procedure AddPHB;
procedure AddPHBtoPC(ulrecn:PPC_PHB_Content);
procedure UpdatePHBtoPC(ulrecn:PPC_PHB_Content;sn:integer);
function AddPHBToList(ulrecn:PPC_PHB_Content;Location:string):integer;
function UpdatePHBToList(ulrecn:PPC_PHB_Content;id:integer):integer;
function DeletePHBinPC(id:integer):boolean;
procedure EditSMS;
procedure AddSMStoPC(ulrecn:PPC_SMS_Content);
procedure UpdateSMStoPC(ulrecn:PPC_SMS_Content;sn:integer);
function DeleteSMSinPC(id:integer):boolean;
function AddSmsToList(ulrecn:PPC_SMS_Content;Location:string):integer;
public
{ Public declarations }
end;
var
Form_main: TForm_main;
implementation
uses phonebook, setupdiag, progressbar, fileop, shortmessage, callrecord;
{$R *.dfm}
//回调函数部分
//*****************phonebook**********************//
procedure configphblist;
var listcount:integer;
begin
listcount:=phonebookList.Count;
while listcount>0 do
begin
if PPhoneBook(PhoneBookList.Items[listcount-1]).serialNo=-1 then
begin
if PPhoneBook(PhoneBookList.Items[listcount-1]).location='PC' then
dec(Count_PHB_PC);
if PPhoneBook(PhoneBookList.Items[listcount-1]).location='手机' then
dec(Count_PHB_NVM);
if PPhoneBook(PhoneBookList.Items[listcount-1]).location='SIM' then
dec(Count_PHB_SIM);
freemem(PhoneBookList.Items[listcount-1]);
PhoneBookList.Delete(listcount-1);
end;
dec(listcount);
end;
end;
procedure docompletephb;
begin
CurPHB_index:=1;
status_PHB:=PC_PHB_status_init;
form_progressbar.ProgressBar1.Position:=1;
sleep(1000);
form_progressbar.Hide;
form_progressbar.close;
//根据上次选择显示的状态来显示新的内容
case Form_main.FLastViewState_phonebook of
ALL_PHB:Form_main.SpeedButton_phonebookClick(nil);
V_PHB: Form_main.ListView_phonebook_subClick(nil);
S_PHB: Form_main.ListView_phonebook_subClick(nil);
P_PHB: Form_main.ListView_phonebook_subClick(nil);
end;
end;
procedure pc_callback_PHBGetInfo(p:pointer);
var showstr:string;
tempphb:PPhoneBook;
objname:array[0..PHB_name_len+3-1] of char;
objmemo:array[0..PHB_memo_len+3-1] of char;
begin
if pPC_Interface_Info(p).status<>ord(PC_Error_NoError) then
begin //从target端返回出错信息后的处理
case pPC_Interface_Info(p).status of
ord(PC_Error_SerialNoResponse):
begin
form_main.statusbar1.Panels[0].Text:='通讯超时,可能串口连接有故障,请检查串口连接,关闭程序后重新打开';//说明target响应timeout,for example:serial is invalid
Serial_Close;
Comhandle:=2;
form_main.StatusBar1.Panels[1].Text:='未连接';
end;
ord(PC_Error_MMINotAllow):form_main.statusbar1.Panels[0].Text:='手机未设在同步状态菜单内';//手机不允许pc同步, 要先进入菜单工具箱->pc同步
ord(PC_Error_MMINeedPause):form_main.statusbar1.Panels[0].Text:='有电话进来,同步暂停';
ord(App_Error_ReadError):form_main.statusbar1.Panels[0].Text:='读取电话簿记录过程中有错误!';
ord(App_Error_WriteError):form_main.statusbar1.Panels[0].Text:='新建电话簿记录过程中有错误,电话簿已存满!';
ord(App_Error_ModifyError)://如果是更新错误
begin
form_main.statusbar1.Panels[0].Text:='更新电话簿记录过程中有错误,该条记录已不存在!';
if CurInsPHB_Index>=0 then
begin
tempphb:=PPhoneBook(phonebooklist[CurInsPHB_Index]);
fillchar(objname,sizeof(objname),#0);
strpcopy(objname,tempphb.name);
ASCtoUnicode(objname,tempphb.data.phkitem.name); //将姓名中文asc转换为unicode
strpcopy(tempphb.data.phkitem.number,tempphb.number);
strpcopy(tempphb.data.phkitem.office,tempphb.office);
strpcopy(tempphb.data.phkitem.home,tempphb.home);
fillchar(objmemo,sizeof(objmemo),#0);
strpcopy(objmemo,tempphb.memo);
ASCtoUnicode(objmemo,tempphb.data.phkitem.memo); //将memo中文asc转换为unicode
if tempphb.Location='手机' then //只有手机类型才需要去更新组别
tempPHB.data.phkitem.info:=grouptoinfo(tempphb.group);
CurInsPHB_Index:=-1;
form_main.Panel_Phb.Caption:='电话簿: PC中条目数:'+inttostr(Count_PHB_PC)
+',手机存储器中条目数:'+inttostr(Count_PHB_NVM)+'(最多'+inttostr(Max_PHB_NVM)
+'),SIM卡中条目数:'+inttostr(Count_PHB_SIM)+'(最多'+inttostr(Max_PHB_SIM)+')';
end;
end;
ord(App_Error_DeleteError):form_main.statusbar1.Panels[0].Text:='删除电话簿记录失败!';
ord(App_Error_CopyError):form_main.statusbar1.Panels[0].Text:='复制电话簿记录到手机过程有错误,手机电话簿已存满';
ord(App_Error_InfoError):form_main.statusbar1.Panels[0].Text:='获取电话簿记录信息有错误';
end;
configphblist;
docompletephb;
exit;
end;
case status_PHB of
PC_PHB_status_init://下载取消时
begin
if PPC_Interface_Info(p).pdata_cmd<>nil then
freemem(PPC_Interface_Info(p).pdata_cmd);
if PPC_Interface_Info(p).pdata_dlbuff<>nil then
freemem(PPC_Interface_Info(p).pdata_dlbuff);
if PPC_Interface_Info(p).pdata_ulbuff<>nil then
freemem(PPC_Interface_Info(p).pdata_ulbuff);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -