📄 umain.pas
字号:
unit umain;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, ComCtrls, ToolWin, ExtCtrls, ImgList, StdCtrls, DB,
DBTables, Excel2000, OleServer,ShellAPI, ADODB;
const
WM_BARICON=WM_USER+200;
type
Tmainform = class(TForm)
MainMenu: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
stbar: TStatusBar;
Panel1: TPanel;
ImageList1: TImageList;
ToolBar1: TToolBar;
ToolButton1: TToolButton;
ToolButton2: TToolButton;
ToolButton4: TToolButton;
ToolButton5: TToolButton;
ToolButton6: TToolButton;
ToolButton7: TToolButton;
ToolButton8: TToolButton;
ToolButton9: TToolButton;
ToolButton10: TToolButton;
ToolButton12: TToolButton;
ToolButton13: TToolButton;
ToolButton14: TToolButton;
Panel2: TPanel;
Splitter1: TSplitter;
Panel3: TPanel;
TreeView1: TTreeView;
Splitter2: TSplitter;
TreeView2: TTreeView;
ListView1: TListView;
Splitter3: TSplitter;
Memo1: TMemo;
N9: TMenuItem;
N11: TMenuItem;
N12: TMenuItem;
N13: TMenuItem;
N14: TMenuItem;
N15: TMenuItem;
C1: TMenuItem;
N16: TMenuItem;
N17: TMenuItem;
N19: TMenuItem;
S1: TMenuItem;
A1: TMenuItem;
N22: TMenuItem;
N25: TMenuItem;
ToolButton16: TToolButton;
ToolButton15: TToolButton;
ImageList2: TImageList;
PopupMenu1: TPopupMenu;
N27: TMenuItem;
ImageList3: TImageList;
ImageList4: TImageList;
PopupMenu2: TPopupMenu;
N28: TMenuItem;
N29: TMenuItem;
N30: TMenuItem;
N31: TMenuItem;
N32: TMenuItem;
ToolButton17: TToolButton;
N33: TMenuItem;
N34: TMenuItem;
PopupMenu3: TPopupMenu;
N35: TMenuItem;
ToolButton18: TToolButton;
N6: TMenuItem;
N7: TMenuItem;
PopupMenu4: TPopupMenu;
N8: TMenuItem;
N10: TMenuItem;
N18: TMenuItem;
N21: TMenuItem;
N23: TMenuItem;
N24: TMenuItem;
N36: TMenuItem;
ExcelApplication1: TExcelApplication;
ExcelWorksheet1: TExcelWorksheet;
ExcelWorkbook1: TExcelWorkbook;
SaveDialog1: TSaveDialog;
PopupMenu5: TPopupMenu;
N37: TMenuItem;
Timer1: TTimer;
N26: TMenuItem;
qtxldq: TADOQuery;
qt1: TADOQuery;
qt2: TADOQuery;
qt3: TADOQuery;
qlistup: TADOQuery;
qlist: TADOQuery;
Qrlist: TADOQuery;
qredit: TADOQuery;
Qrsend: TADOQuery;
qrly: TADOQuery;
procedure N11Click(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure ToolButton9Click(Sender: TObject);
procedure N19Click(Sender: TObject);
procedure ToolButton10Click(Sender: TObject);
procedure S1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure N27Click(Sender: TObject);
procedure ToolButton5Click(Sender: TObject);
procedure N31Click(Sender: TObject);
procedure N29Click(Sender: TObject);
procedure N28Click(Sender: TObject);
procedure ListView1SelectItem(Sender: TObject; Item: TListItem;
Selected: Boolean);
procedure N32Click(Sender: TObject);
procedure N33Click(Sender: TObject);
procedure N30Click(Sender: TObject);
procedure N34Click(Sender: TObject);
procedure N35Click(Sender: TObject);
procedure ToolButton13Click(Sender: TObject);
procedure ToolButton14Click(Sender: TObject);
procedure N12Click(Sender: TObject);
procedure C1Click(Sender: TObject);
procedure N16Click(Sender: TObject);
procedure N17Click(Sender: TObject);
procedure N8Click(Sender: TObject);
procedure N10Click(Sender: TObject);
procedure N18Click(Sender: TObject);
procedure N21Click(Sender: TObject);
procedure N23Click(Sender: TObject);
procedure N24Click(Sender: TObject);
procedure ToolButton2Click(Sender: TObject);
procedure A1Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure N26Click(Sender: TObject);
procedure TreeView2Click(Sender: TObject);
procedure TreeView1Click(Sender: TObject);
procedure FormActivate(Sender: TObject);
private
Elapse:Longint;
nowDate:TDate;
DateChanged:Boolean;
//在这里定义系统的系统过程即实现恢复和最小化的消息管理
procedure WMSysCommand(var Message: TMessage); message
WM_SYSCOMMAND;
procedure WMBarIcon(var Message:TMessage);message
WM_BARICON;
//定义状态条上的变量
{ Private declarations }
public
{ Public declarations }
end;
var
mainform: Tmainform;
idall:array[0..9999] of string;
taball:string;
ljxdel:string;//yes表示是垃圾箱则从数据库delete,no表示不是垃圾箱则只用更新status=4即可
nameall:string; //用于标识我现在正在操作的类别为"已收短信",还是"待发短信"等.
statusall:string;//状态参数用于短信编中的处理,说明现在编辑的是什么类别的类信息
//而且只有点击"待发,已发,失败,草稿"才能编辑否则不可编辑
implementation
uses utxl,udy,udb,utxlxz,udxxj,ucxlxr,udycx,udxcx,uyfdx,usbdx,uabout;
{$R *.dfm}
procedure Tmainform.WMSysCommand(var Message:TMessage);
var
lpData:PNotifyIconData;
begin
if Message.WParam = SC_ICON then
begin
//如果用户最小化窗口则将窗口隐藏并在任务栏上添加图标
lpData := new(PNotifyIconDataA);
lpData.cbSize := 88;
//SizeOf(PNotifyIconDataA);
lpData.Wnd := mainform.Handle;
lpData.hIcon := mainform.Icon.Handle;
lpData.uCallbackMessage := WM_BARICON;
lpData.uID :=0;
lpData.szTip := '数通短信系统1.2';
lpData.uFlags := NIF_ICON
or NIF_MESSAGE or NIF_TIP;
Shell_NotifyIcon(NIM_ADD,lpData);
dispose(lpData);
mainform.Visible := False;
end
else
begin
//如果是其它的SystemCommand消息则调用系统缺省处理函数处理之。
DefWindowProc(mainform.Handle,Message.
Msg,Message.WParam,Message.LParam);
end;
end;
procedure Tmainform.WMBarIcon(var Message:TMessage);
var
lpData:PNotifyIconData;
begin
if (Message.LParam = WM_LBUTTONDOWN) then
begin
//如果用户点击任务栏图标则将图标删除并回复窗口。
lpData := new(PNotifyIconDataA);
lpData.cbSize := 88;//SizeOf(PNotifyIconDataA);
lpData.Wnd := mainform.Handle;
lpData.hIcon := mainform.Icon.Handle;
lpData.uCallbackMessage := WM_BARICON;
lpData.uID :=0;
lpData.szTip := '数通短信系统1.2';
lpData.uFlags := NIF_ICON or NIF_MESSAGE or NIF_TIP;
Shell_NotifyIcon(NIM_DELETE,lpData);
dispose(lpData);
mainform.Visible := True;
end;
end;
//开始当程序的图标最小化后不同的响应;
//结束最小化后的响应
procedure Tmainform.N11Click(Sender: TObject);
begin
close;
end;
procedure Tmainform.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
if MessageBox(Handle,'您确认要退出本系统吗?','确认退出',MB_YESNO+MB_IconInformation+MB_DefButton2)=IDYES then
begin
CanClose:=True;
end
else
CanClose:=False;
end;
procedure Tmainform.FormClose(Sender: TObject; var Action: TCloseAction);
begin
action:=cafree;
end;
procedure Tmainform.ToolButton9Click(Sender: TObject);
begin
frmtxl:=Tfrmtxl.Create(nil);
frmtxl.Show;
end;
procedure Tmainform.N19Click(Sender: TObject);
begin
frmtxl:=Tfrmtxl.Create(nil);
frmtxl.Show;
end;
procedure Tmainform.ToolButton10Click(Sender: TObject);
begin
frmdy:=Tfrmdy.Create(nil);
frmdy.Show;
end;
procedure Tmainform.S1Click(Sender: TObject);
begin
frmdy:=Tfrmdy.Create(nil);
frmdy.Show;
end;
procedure Tmainform.FormCreate(Sender: TObject);
var
treenode,treenode1,treenode2,treenode3:ttreenode;
tree1node,tree1node2,tree1node3,tree1node4,tree1node5,tree1node6,tree1node7:Ttreenode;
begin
//开始下面的状态条信息的写入
Elapse:=0;
nowDate:=Date;
Timer1.Enabled:=true;
DateChanged:=true;
//结束状态的写入
//让删除按扭不可用即初始化工作;
ToolButton7.Enabled:=false;
ToolButton17.Enabled:=false;
ToolButton6.Enabled:=false;
ToolButton18.Enabled:=false;
n6.Enabled:=false;
n7.Enabled:=false;
N13.Enabled:=false;
N14.Enabled:=false;
N29.Enabled:=false;
N32.Enabled:=false;
N30.Enabled:=false;
//n26.Enabled:=false;
n34.Enabled:=false;
n24.Enabled:=false;
n36.Enabled:=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,trim(qt1.fieldbyname('fzname').asstring));
treenode1.ImageIndex := 1;
treenode1.SelectedIndex := 2;
//开始加第二层的内容:人员
runsql(qt2,'select * from txl where fzid='''+trim(qt1.fieldbyname('fzid').asstring)+'''');
while not qt2.Eof do
begin
treenode2:=addchild(treenode1,trim(qt2.fieldbyname('name').asstring));
treenode2.ImageIndex := 3;
treenode2.SelectedIndex := 4;
//开始第三层:手机号,私人电 话,
runsql(qt3,'select * from txl where txlid='''+trim(qt2.fieldbyname('txlid').asstring)+'''');
while not qt3.Eof do
begin
//加个人具体信息
if trim(qt3.fieldbyname('sex').asstring)<>'' then
begin
treenode3:=addchild(treenode2,'性别:'+trim(qt3.fieldbyname('sex').asstring));
treenode3.ImageIndex := 5;
treenode3.SelectedIndex := 6;
end;
if trim(qt3.fieldbyname('telsj').asstring)<>'' then
begin
treenode3:=addchild(treenode2,'手机号:'+trim(qt3.fieldbyname('telsj').asstring));
treenode3.ImageIndex := 5;
treenode3.SelectedIndex := 6;
end;
if trim(qt3.fieldbyname('telsr').asstring)<>'' then
begin
treenode3:=addchild(treenode2,'私人电话:'+trim(qt3.fieldbyname('telsr').asstring));
treenode3.ImageIndex := 5;
treenode3.SelectedIndex := 6;
end;
if trim(qt3.fieldbyname('email').asstring)<>'' then
begin
treenode3:=addchild(treenode2,'电子邮件:'+trim(qt3.fieldbyname('email').asstring));
treenode3.ImageIndex := 5;
treenode3.SelectedIndex := 6;
end;
if trim(qt3.fieldbyname('qz').asstring)<>'' then
begin
treenode3:=addchild(treenode2,'传真:'+trim(qt3.fieldbyname('qz').asstring));
treenode3.ImageIndex := 5;
treenode3.SelectedIndex := 6;
end;
if trim(qt3.fieldbyname('telgs').asstring)<>'' then
begin
treenode3:=addchild(treenode2,'公司电话:'+trim(qt3.fieldbyname('telgs').asstring));
treenode3.ImageIndex := 5;
treenode3.SelectedIndex := 6;
end;
if trim(qt3.fieldbyname('gsname').asstring)<>'' then
begin
treenode3:=addchild(treenode2,'公司名称:'+trim(qt3.fieldbyname('gsname').asstring));
treenode3.ImageIndex := 5;
treenode3.SelectedIndex := 6;
end;
if trim(qt3.fieldbyname('ssbm').asstring)<>'' then
begin
treenode3:=addchild(treenode2,'所属部门:'+trim(qt3.fieldbyname('ssbm').asstring));
treenode3.ImageIndex := 5;
treenode3.SelectedIndex := 6;
end;
if trim(qt3.fieldbyname('xxdz').asstring)<>'' then
begin
treenode3:=addchild(treenode2,'联系地址:'+trim(qt3.fieldbyname('xxdz').asstring));
treenode3.ImageIndex := 5;
treenode3.SelectedIndex := 6;
end;
//加个人具体信息结束
qt3.Next;
end;
//结束第三层
qt2.Next;
end;
//结束第二层
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -