📄 udxxj.pas
字号:
unit Udxxj;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ImgList, ToolWin, ComCtrls, StdCtrls, ExtCtrls, Buttons, DB,
DBTables, ADODB;
type
Tfrmdxxj = class(TForm)
ToolBar1: TToolBar;
ImageList1: TImageList;
ToolButton1: TToolButton;
ToolButton2: TToolButton;
ToolButton3: TToolButton;
ToolButton5: TToolButton;
ToolButton6: TToolButton;
ToolButton8: TToolButton;
Shape1: TShape;
Label4: TLabel;
Shape2: TShape;
Label1: TLabel;
Label2: TLabel;
Edit1: TEdit;
SpeedButton1: TSpeedButton;
Edit2: TEdit;
Memo1: TMemo;
Label3: TLabel;
SpeedButton2: TSpeedButton;
SpeedButton3: TSpeedButton;
Label5: TLabel;
qth: TADOQuery;
qdxgl: TADOQuery;
procedure ToolButton6Click(Sender: TObject);
procedure Shape1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure SpeedButton3Click(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure SpeedButton2Click(Sender: TObject);
procedure ToolButton5Click(Sender: TObject);
procedure ToolButton1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmdxxj: Tfrmdxxj;
isedit:string;//如果是编辑则为edit;如果是新建则为new;
implementation
uses utxlxz,udyxz,udb;
{$R *.dfm}
procedure Tfrmdxxj.ToolButton6Click(Sender: TObject);
begin
//如果有内容在编辑则给出提示,否则直接的退出
if ((trim(edit2.text)<>'') and (trim(memo1.text)<>'') and (isedit='edit')) then
begin
if application.MessageBox('退出将丢失正在编辑的短信?',':提示:',mb_yesno)=idyes then
begin
close;
end;
end;
if (((isedit='new')or(isedit='other')) and((trim(edit1.text)<>'') or (trim(edit2.text)<>'') or (trim(memo1.text)<>''))) then
begin
if application.MessageBox('退出将丢失正在新建的短信?',':提示:',mb_yesno)=idyes then
begin
close;
end;
end;
if ((trim(edit2.text)='') and (trim(edit1.Text)='') and (trim(memo1.text)='')) then
begin
close;
end;
end;
procedure Tfrmdxxj.Shape1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if button=mbleft then
begin
releasecapture;
perform(wm_syscommand,$f012,0);
end;
end;
procedure Tfrmdxxj.SpeedButton3Click(Sender: TObject);
begin
memo1.Clear;
end;
procedure Tfrmdxxj.SpeedButton1Click(Sender: TObject);
begin
frmtxlxz:=Tfrmtxlxz.Create(nil);
frmtxlxz.Show;
end;
procedure Tfrmdxxj.SpeedButton2Click(Sender: TObject);
begin
frmdyxz:=tfrmdyxz.Create(nil);
frmdyxz.Show;
end;
procedure Tfrmdxxj.ToolButton5Click(Sender: TObject);
var
instr:string;
lbs:string;
a,b:string;
begin
if (length(trim(edit1.text))>11) then
begin
application.MessageBox('您录入的发送人字符过长!',':提示:',mb_ok);
exit;
end;
if (length(trim(edit2.text))>200) then
begin
application.MessageBox('您录入的接收人字符过长!',':提示:',mb_ok);
exit;
end;
//////在开始位置就去掉有空内容的情况
if ((trim(edit2.text)='') and (trim(memo1.text)='')) then
begin
application.MessageBox('您新建的短信信息不完整,请检查!',':提示:',mb_ok);
exit;
end;
//////结束空内容的分析
////开始结非法字符的保护
try
if ((trim(edit2.text)<>'') and (trim(memo1.text)<>'')) then
begin
//分析发送的类别,看是否是通讯录
b:=edit2.Text;
a:=copy(trimleft(b),1,1);
if a='1' then
lbs:='0'
else
lbs:='1';
//qdxgl.ParamByName('dt').AsString:=datetimetostr(now);
instr:='INSERT INTO dxgl(sender,receiver,content,status,senddate,lb)'+
' values('''+trim(edit1.text)+''','''+trim(edit2.text)+''','''+trim(memo1.text)+''',' +
' 3,:dt,'''+lbs+''') ';
qdxgl.Close;
qdxgl.SQL.Clear;
qdxgl.SQL.Text:=instr;
qdxgl.Parameters.ParamByName('dt').value:=datetimetostr(now);
qdxgl.ExecSQL;
application.MessageBox('短信保存成功!','::提示::',mb_ok);
//开始清空发送的主界面
edit1.clear;
edit2.Clear;
memo1.clear;
isedit:='other';
//结束主界面的的清空
end
else
begin
application.MessageBox('您的信息不完整请检查!','::提示::',mb_ok);
end;
except
application.MessageBox('短信内容中存在非法字符,请检查!',':提示:',mb_ok);
exit;
end;
end;
procedure Tfrmdxxj.ToolButton1Click(Sender: TObject);
var
instr:string;
lbs:string;
a,b:string;
th:array[0..99] of string;
thsql:string;
thi:integer;
////
i,n,m,k:integer;
s:string;
c:array[0..20]of string;
begin
if (length(trim(edit1.text))>11) then
begin
application.MessageBox('您录入的发送人字符过长!',':提示:',mb_ok);
exit;
end;
if length(edit2.text)>200 then
begin
application.MessageBox('接收者手机号太长,请检查!',':提示:',Mb_ok);
exit;//如果信息不完整则跳出程序要求它去检查
end;
////开始检验其主要内容是否为空的情况
if ((trim(edit2.text)='')or(trim(memo1.text)='')) then
begin
application.MessageBox('您新建的短信信息不完整,请检查!',':提示:',Mb_ok);
exit;//如果信息不完整则跳出程序要求它去检查
end;
////结束情况的检验
try
if ((edit2.text<>'') and (memo1.text<>'')) then
begin
//开始是否是多个分组的检验
s:=trim(edit2.Text);
if pos(',',s)>0 then
begin
//分析它的未尾有没有标号,如果没有就给出提示内容不正确;
if s[length(s)]<>',' then
begin
application.MessageBox('您可能丢失了逗号,请检查!',':提示:',Mb_ok);
exit;//如果信息不完整则跳出程序要求它去检查
end;
/////////开始多组的分析
n:=0;
m:=1;
for i:=1 to length(s) do
begin
if s[i]=',' then
begin
c[n]:=copy(s,m,i-m);
n:=n+1;
m:=i+1;
end;
end;
//将c[]数组中的字符串分别进行是否是分组,是否是电话的检测并存入sendsms表中
for k:=0 to n-1 do
begin
//开始分析它c[n]是电话还是分组
b:=c[k];
a:=copy(trimleft(b),1,1);
if a='1' then
lbs:='0'
else
lbs:='1';
//向来盟的表中写入发待发信息 0:待发,1:已发,2:失败
if lbs='0' then
begin
instr:='INSERT INTO sendsms(sender,receiver,content,status,senddate,lb)'+
' values('''+trim(edit1.text)+''','''+c[k]+''','''+trim(memo1.text)+''',' +
' 0,:dt,'''+lbs+''') ';
qdxgl.Close;
qdxgl.SQL.Clear;
qdxgl.SQL.Text:=instr;
//qdxgl.Parameters.ParamByName('dt').value
qdxgl.Parameters.ParamByName('dt').value:=datetimetostr(now);
qdxgl.ExecSQL;
end;
//完成单个号码的写入;
if lbs='1' then
begin
//在通讯录中查找电话号码放到数组tl[]中;
thsql:='select txl.telsj from txl,fz where (fz.fzid=txl.fzid) and ((fz.fzname='''+c[k]+''')or(txl.name='''+c[k]+'''))';
runsql(qth,thsql);
for thi:=0 to qth.RecordCount-1 do
begin
th[thi]:=qth.fieldbyname('telsj').AsString;
//在这里分个的放入电话
instr:='INSERT INTO sendsms(sender,receiver,content,status,senddate,lb)'+
' values('''+trim(edit1.text)+''',:thhm,'''+trim(memo1.text)+''',' +
' 0,:dt,'''+lbs+''') ';
qdxgl.Close;
qdxgl.SQL.Clear;
qdxgl.SQL.Text:=instr;
qdxgl.Parameters.ParamByName('dt').value:=datetimetostr(now);
//qdxgl.ParamByName('thhm').AsString:=th[thi];
qdxgl.Parameters.ParamByName('thhm').value:=th[thi];
qdxgl.ExecSQL;
//结束分个的放入
qth.Next;
end;
end;
//结束分析它是电话还是分组
end; //for c[]
////////结束多组的分析
//清空留下的东西
//.....
//结束清空
//application.MessageBox('短信正在发送.....!','::提示::',mb_ok);
//开始清空发送的主界面
edit1.clear;
edit2.Clear;
memo1.clear;
isedit:='other';
end
else
begin
//分析发送的类别,看是否是通讯录
b:=trim(edit2.Text);
a:=copy(trimleft(b),1,1);
if a='1' then
lbs:='0'
else
lbs:='1';
//向来盟的表中写入发待发信息 0:待发,1:已发,2:失败
if lbs='0' then
begin
instr:='INSERT INTO sendsms(sender,receiver,content,status,senddate,lb)'+
' values('''+trim(edit1.text)+''','''+trim(edit2.text)+''','''+trim(memo1.text)+''',' +
' 0,:dt,'''+lbs+''') ';
qdxgl.Close;
qdxgl.SQL.Clear;
qdxgl.SQL.Text:=instr;
qdxgl.Parameters.ParamByName('dt').value:=datetimetostr(now);
qdxgl.ExecSQL;
end;
//完成单个号码的写入;
if lbs='1' then
begin
//在通讯录中查找电话号码放到数组tl[]中;
thsql:='select txl.telsj from txl,fz where (fz.fzid=txl.fzid) and ((fz.fzname='''+edit2.text+''')or(txl.name='''+edit2.text+'''))';
runsql(qth,thsql);
for thi:=0 to qth.RecordCount-1 do
begin
th[thi]:=qth.fieldbyname('telsj').AsString;
//在这里分个的放入电话
instr:='INSERT INTO sendsms(sender,receiver,content,status,senddate,lb)'+
' values('''+trim(edit1.text)+''',:thhm,'''+trim(memo1.text)+''',' +
' 0,:dt,'''+lbs+''') ';
qdxgl.Close;
qdxgl.SQL.Clear;
qdxgl.SQL.Text:=instr;
qdxgl.Parameters.ParamByName('dt').value:=datetimetostr(now);
qdxgl.Parameters.ParamByName('thhm').value:=th[thi];
qdxgl.ExecSQL;
//结束分个的放入
qth.Next;
end;
end;
//结束来盟表的写
//application.MessageBox('短信正在发送.....!','::提示::',mb_ok);
//开始清空发送的主界面
edit1.clear;
edit2.Clear;
memo1.clear;
isedit:='other';
//结束主界面的的清空
end;
end
else
begin
application.MessageBox('您的信息不完整请检查!','::提示::',mb_ok);
end;
except
application.MessageBox('短信信息中有非法字符,请检查!',':提示:',mb_ok);
exit;
end;
end;
procedure Tfrmdxxj.FormCreate(Sender: TObject);
begin
//在新建的时候给一个变量;
isedit:='new';
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -