📄 umain.pas
字号:
end;
//结束加数据
//开始更新数据即读过的应将其状态改为1表示已读过了
//结束对状态的更改
//application.MessageBox('你双击了待发短信!',':提示:',mb_ok)
end;
//结束待发短信的编写;
//开始已发短信的显示
if namebd='已发短信' then
begin
//开始向listview中加数据
taball:='sendsms';
ljxdel:='no';
nameall:='已发短信';
listview1.Items.Clear;
listview1.Columns.Clear;
name[0]:='接收者手机号';
name[1]:='发送者';
name[2]:='短信内容';
name[3]:='发信时间';
for i:= 0 to 3 do
begin
listview1.columns.add;
listview1.Column[i].Caption:=name[i];
listview1.Column[i].Width:=115;
listview1.Column[i].Alignment:=tacenter;
end;
strsql:='select * from sendsms where status=1';
runsql(qlist,strsql);
if qlist.RecordCount >0 then
begin
for i:=0 to qlist.RecordCount-1 do
begin
lstitem:=listview1.Items.Add;
idall[i]:=qlist.fieldbyname('id').AsString;//用于删除时的标识付
lstitem.Caption:=qlist.fieldbyname('receiver').AsString;
lstitem.ImageIndex:=0;
lstitem.SubItems.Add(qlist.fieldbyname('sender').AsString);
lstitem.SubItems.Add(qlist.fieldbyname('content').AsString);
lstitem.SubItems.Add(qlist.fieldbyname('senddate').AsString);
qlist.Next;
end;
end;
//结束加数据
//开始更新数据即读过的应将其状态改为1表示已读过了
//结束对状态的更改
//application.MessageBox('你双击了已发短信!',':提示:',mb_ok)
end;
//结束已发短信的显示
//失败短信的显示
if namebd='失败短信' then
begin
//开始向listview中加数据
taball:='sendsms';
ljxdel:='no';
nameall:='失败短信';
listview1.Items.Clear;
listview1.Columns.Clear;
name[0]:='接收者手机号';
name[1]:='发送者';
name[2]:='短信内容';
name[3]:='发信时间';
for i:= 0 to 3 do
begin
listview1.columns.add;
listview1.Column[i].Caption:=name[i];
listview1.Column[i].Width:=115;
listview1.Column[i].Alignment:=tacenter;
end;
strsql:='select * from sendsms where status=2';
runsql(qlist,strsql);
if qlist.RecordCount >0 then
begin
for i:=0 to qlist.RecordCount-1 do
begin
lstitem:=listview1.Items.Add;
idall[i]:=qlist.fieldbyname('id').AsString;//用于删除时的标识付
lstitem.Caption:=qlist.fieldbyname('receiver').AsString;
lstitem.ImageIndex:=0;
lstitem.SubItems.Add(qlist.fieldbyname('sender').AsString);
lstitem.SubItems.Add(qlist.fieldbyname('content').AsString);
lstitem.SubItems.Add(qlist.fieldbyname('senddate').AsString);
qlist.Next;
end;
end;
//结束加数据
//开始更新数据即读过的应将其状态改为1表示已读过了
//结束对状态的更改
//application.MessageBox('你双击了失败短信!',':提示:',mb_ok)
end;
//结束失败短信的显示
//开始草稿短信的显示
if namebd='草稿短信' then
begin
//开始向listview中加数据
taball:='dxgl';
ljxdel:='no';
nameall:='草稿短信';
listview1.Items.Clear;
listview1.Columns.Clear;
name[0]:='接收者手机号';
name[1]:='发送者';
name[2]:='短信内容';
name[3]:='发信时间';
for i:= 0 to 3 do
begin
listview1.columns.add;
listview1.Column[i].Caption:=name[i];
listview1.Column[i].Width:=115;
listview1.Column[i].Alignment:=tacenter;
end;
strsql:='select * from dxgl where status=3';
runsql(qlist,strsql);
if qlist.RecordCount >0 then
begin
for i:=0 to qlist.RecordCount-1 do
begin
lstitem:=listview1.Items.Add;
idall[i]:=qlist.fieldbyname('id').AsString;//用于删除时的标识付
lstitem.Caption:=qlist.fieldbyname('receiver').AsString;
lstitem.ImageIndex:=0;
lstitem.SubItems.Add(qlist.fieldbyname('sender').AsString);
lstitem.SubItems.Add(qlist.fieldbyname('content').AsString);
lstitem.SubItems.Add(qlist.fieldbyname('senddate').AsString);
qlist.Next;
end;
end;
//结束加数据
//开始更新数据即读过的应将其状态改为1表示已读过了
//结束对状态的更改
//application.MessageBox('你双击了草稿箱!',':提示:',mb_ok)
end;
//结束草稿箱的显示
//开始垃圾箱的显示
if namebd='垃圾箱' then
begin
//开始向listview中加数据
taball:='dxgl';
ljxdel:='yes';
nameall:='垃圾箱';
listview1.Items.Clear;
listview1.Columns.Clear;
name[0]:='接收者手机号';
name[1]:='发送者';
name[2]:='短信内容';
name[3]:='发信时间';
for i:= 0 to 3 do
begin
listview1.columns.add;
listview1.Column[i].Caption:=name[i];
listview1.Column[i].Width:=115;
listview1.Column[i].Alignment:=tacenter;
end;
strsql:='select * from dxgl where status=4';
runsql(qlist,strsql);
if qlist.RecordCount >0 then
begin
for i:=0 to qlist.RecordCount-1 do
begin
lstitem:=listview1.Items.Add;
idall[i]:=qlist.fieldbyname('id').AsString;//用于删除时的标识付
lstitem.Caption:=qlist.fieldbyname('receiver').AsString;
lstitem.ImageIndex:=0;
lstitem.SubItems.Add(qlist.fieldbyname('sender').AsString);
lstitem.SubItems.Add(qlist.fieldbyname('content').AsString);
lstitem.SubItems.Add(qlist.fieldbyname('senddate').AsString);
qlist.Next;
end;
end;
//结束加数据
//开始更新数据即读过的应将其状态改为1表示已读过了
//结束对状态的更改
//application.MessageBox('你双击了垃圾箱!',':提示:',mb_ok)
end;
//结束垃圾箱的刷新
end;//结束try的动作,即编辑短信结束后要刷新一下刚才的操作;
// end;
end;
end//结束分析是否listview.selcount>0否则退出
else
begin
application.MessageBox('你没选listview的选项故退出!',':提示:',mb_ok);
exit;
end;
//结束检验
end;
procedure Tmainform.N33Click(Sender: TObject);
var
treenode,treenode1,treenode2,treenode3:ttreenode;
begin
n26.Visible:=false;
treeview2.items.clear;
treenode:=treeview2.items.add(nil,'通讯录');
treenode.HasChildren := true;
treenode.ImageIndex := 0;
treenode.SelectedIndex := 0;
runsql(qt1,'select * from fz');
with TreeView2.Items do
begin
while not qt1.eof do
begin
treenode1:=addchild(treenode,qt1.fieldbyname('fzname').asstring);
treenode1.ImageIndex := 1;
treenode1.SelectedIndex := 2;
//开始加第二层的内容:人员
runsql(qt2,'select * from txl where fzid='''+qt1.fieldbyname('fzid').asstring+'''');
while not qt2.Eof do
begin
treenode2:=addchild(treenode1,qt2.fieldbyname('name').asstring);
treenode2.ImageIndex := 3;
treenode2.SelectedIndex := 4;
//开始第三层:手机号,私人电 话,
runsql(qt3,'select * from txl where txlid='''+qt2.fieldbyname('txlid').asstring+'''');
while not qt3.Eof do
begin
//加个人具体信息
if trim(qt3.fieldbyname('sex').asstring)<>'' then
begin
treenode3:=addchild(treenode2,'性别:'+qt3.fieldbyname('sex').asstring);
treenode3.ImageIndex := 5;
treenode3.SelectedIndex := 6;
end;
if trim(qt3.fieldbyname('telsj').asstring)<>'' then
begin
treenode3:=addchild(treenode2,'手机号:'+qt3.fieldbyname('telsj').asstring);
treenode3.ImageIndex := 5;
treenode3.SelectedIndex := 6;
end;
if trim(qt3.fieldbyname('telsr').asstring)<>'' then
begin
treenode3:=addchild(treenode2,'私人电话:'+qt3.fieldbyname('telsr').asstring);
treenode3.ImageIndex := 5;
treenode3.SelectedIndex := 6;
end;
if trim(qt3.fieldbyname('email').asstring)<>'' then
begin
treenode3:=addchild(treenode2,'电子邮件:'+qt3.fieldbyname('email').asstring);
treenode3.ImageIndex := 5;
treenode3.SelectedIndex := 6;
end;
if trim(qt3.fieldbyname('qz').asstring)<>'' then
begin
treenode3:=addchild(treenode2,'传真:'+qt3.fieldbyname('qz').asstring);
treenode3.ImageIndex := 5;
treenode3.SelectedIndex := 6;
end;
if trim(qt3.fieldbyname('telgs').asstring)<>'' then
begin
treenode3:=addchild(treenode2,'公司电话:'+qt3.fieldbyname('telgs').asstring);
treenode3.ImageIndex := 5;
treenode3.SelectedIndex := 6;
end;
if trim(qt3.fieldbyname('gsname').asstring)<>'' then
begin
treenode3:=addchild(treenode2,'公司名称:'+qt3.fieldbyname('gsname').asstring);
treenode3.ImageIndex := 5;
treenode3.SelectedIndex := 6;
end;
if trim(qt3.fieldbyname('ssbm').asstring)<>'' then
begin
treenode3:=addchild(treenode2,'所属部门:'+qt3.fieldbyname('ssbm').asstring);
treenode3.ImageIndex := 5;
treenode3.SelectedIndex := 6;
end;
if trim(qt3.fieldbyname('xxdz').asstring)<>'' then
begin
treenode3:=addchild(treenode2,'联系地址:'+qt3.fieldbyname('xxdz').asstring);
treenode3.ImageIndex := 5;
treenode3.SelectedIndex := 6;
end;
//加个人具体信息结束
qt3.Next;
end;
//结束第三层
qt2.Next;
end;
//结束第二层
qt1.next;
end;
end;
if treeview2.Items.Count>1 then
begin
treeview2.Items.Item[0].Expanded:=true;
end;
end;
procedure Tmainform.N30Click(Sender: TObject);
var
sendid:string; //用于操作表中的记录id号
sendtab:string;//用于标识所在操作的表;
sendstr:string;
ljxbd:string;//用于说明是否操作的是垃圾箱,如果是则删除从数据库.
namebd:string;
//下面是用于刷新操作用到的局部变量
i:integer;
lstitem:Tlistitem;
name: array[0..10] of string;
strsql:string;
begin
//在发送之前要分析一下是否有项被选中,选中才执行下面的操作,否则exit;
if listview1.SelCount >0 then
begin
sendid:=idall[listview1.selected.index];
sendtab:=taball;
ljxbd:=ljxdel;
namebd:=nameall;//将全局变量类别名称赋给naemebd便于做发送操作后更新为status=1;
//开始检查原表中是否有这样的一条记录有才能执行发送操作;
runsql(qrsend,'select * from '+sendtab+' where id='+sendid);
if qrsend.RecordCount >0 then
begin
if application.MessageBox('请确认是否要发送?',':提示:',mb_yesno)=idyes then
begin
//开始给编辑窗口赋值
try
frmdxxj:=Tfrmdxxj.Create(nil);
//frmdxxj.Show;//利用这个窗口中的立即发送功能但是不显示出它的界面;
frmdxxj.Edit1.Text:=qrsend.fieldbyname('sender').asstring;
frmdxxj.Edit2.Text:=qrsend.fieldbyname('receiver').AsString;
frmdxxj.Memo1.Text:=qrsend.fieldbyname('content').AsString;
isedit:='other';
//结束给编辑窗口赋值
//开始分析编辑
sendstr:='delete from '+sendtab+' where id='+sendid;
//结束编辑分析
qrlist.Close;
qrlist.SQL.Clear;
qrlist.SQL.Text:=sendstr;
qrlist.ExecSQL;
listview1.Selected.Delete;
memo1.Clear;
//开始触发“立即发送”按扭
frmdxxj.ToolButton1Click(sender);
//结束触发“立即发送”按扭
//放掉刚才建立的窗体
frmdxxj.Free;
//结束刚才建立的窗体的操作
//当删除操作完后做此类的刷新
finally
if namebd='接收短信' then
begin
//开始向listview中加数据
taball:='revsms';
ljxdel:='no';
nameall:='接收短信';
listview1.Items.Clear;
listview1.Columns.Clear;
name[0]:='来自手机号';
name[1]:='短信内容';
name[2]:='接收时间';
for i:= 0 to 2 do
begin
listview1.columns.add;
listview1.Column[i].Caption:=name[i];
listview1.Column[i].Width:=115;
listview1.Column[i].Alignment:=tacenter;
end;
strsql:='select * from revsms where status=0';
runsql(qlist,strsql);
if qlist.RecordCount >0 then
begin
for i:=0 to qlist.RecordCount-1 do
begin
lstitem:=listview1.Items.Add;
idall[i]:=qlist.fieldbyname('id').AsString;//用于删除时的标识付
lstitem.Caption:=qlist.fieldbyname('fromaddress').AsString;
lstitem.ImageIndex:=0;
lstitem.SubItems.Add(qlist.fieldbyname('content').AsString);
lstitem.SubItems.Add(qlist.fieldbyname('revtime').AsString);
qlist.Next;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -