VoIP模拟手机系统的常用功能网络电话设计(6)
时间:2017-06-17 14:12 来源:毕业论文 作者:毕业论文 点击:次
UClient1.Port :=9927;//设置对方IP if(label4.Caption='1') then begin form9.BitBtn1.Click; end; if length(Memo1.lines.GetText)>0 then begin UClient1.Send(memo1.Lines .GetText);//将短信内容发出 接受短信用到的udpsever onudpread函数 Stream:=Tstringstream.creat('');//创建一个字符串流 Stream.CopyFrom(AData,AData.Size);//将接收到的内容拷贝进字符串流 str:=Stream.DataString;//转换成字符串 form11.show; s:=ExtractFilePath(paramstr(0))+trim('wav\1.wav');//播放当前程序wav文件夹下声音文件 sndPlaySound(PChar(s), SND_LOOP or SND_ASYNC);//短信响铃 form11.Memo1.Clear; form11.memo1.Lines.Insert(0,str);//显示信息 form11.Label1.Caption:= ABinding.PeerIP;//显示对方联系方式 sleep(1000);//让响铃播放结束 sndPlaySound(nil, 0);//停止响铃 以下为写信功能与收到短信的截图 图 6.2 编辑短信并发送 图6.3 收到短信并显示 6.2.2 短信记录功能的实现 短信能有记录的前提是先要有储存,本课题通过ADOquery控件执行SQL语句的插入功能,将短信存储进数据库,使得记录存在。短信的记录功能主要考虑到了三个方面,即收件箱,发件箱,草稿箱,收件箱有查看和回复以及转发三项功能,发件箱有查看与转发两项功能,而草稿箱有查看和发送两项功能,考虑到各个功能细节不尽相同,本课题使用了三个form来实现这些功能,关于短信的提取显示,本课题主用利用到了DBgrid,DataSource,ADOquery,ADOConnection,四个数据库操作控件,其中ADOConnection主要负责连接到SQL Server数据库,ADOquery控件负责执行SQL语句,DBgrid控件负责SQL语句结果的内容显示,DataSource控件负责ADOquery和DBgrid的连接。为了实现查看短信的功能,除了要显示短信内容,还应当有联系人信息,而联系人信息分为号码和姓名两部分,要把短信中的联系人号码和联系人姓名对应起来,本课题用到了SQL语句的外连接,即,在查阅短信时,可以同时看到通讯录中已存联系人的姓名。最后还需要添加删除记录的功能,这个部分需要用到SQL语句的delete功能,详细代码如下: 存储功能以发件箱为例 Adoquery1.insert; Adoquery1.FieldByname('text').AsString:=memo1.Text ;//存入短信内容 Adoquery1.FieldByname('number').AsString:=Edit2.Text;//存入联系方式 Adoquery1.FieldByname('time').Asstring:=DateTimeToStr(Now());//存入时间 Adoquery1.FieldByname('flag').Asinteger:=2;//代表为发出信息 Adoquery1.post; 信息记录的显示,SQL语句的外连接 SQL.Add('select b.name as 姓名,a.number as 号码,a.text as 内容 ,a.time as 时间 from 通讯录 as b ') ; SQL.Add('right outer join 短信 as a on a.number=b.number where a.flag=''3''') ;//通讯录表外连接到短信表,以显示短信联系人姓名 显示结果如下 (责任编辑:qin) |