⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 umain.pas

📁 实现短信的收发应用非常的方便,系统很小直接使用不需安装
💻 PAS
📖 第 1 页 / 共 5 页
字号:
   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 + -