📄 gzdx.pas
字号:
unit gzdx;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls, Db, DBTables;
type
Tfrm_gzdx = class(TForm)
Bevel2: TBevel;
Label1: TLabel;
Label2: TLabel;
Bevel1: TBevel;
Bevel3: TBevel;
Bevel4: TBevel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
smc: TEdit;
phone: TEdit;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Memo1: TMemo;
Memo2: TMemo;
panel1: TPanel;
Query_gzdx: TQuery;
procedure Button1Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frm_gzdx: Tfrm_gzdx;
implementation
{$R *.DFM}
//=============DLL 函数调用声明 开始 =========
procedure ConnectToMobile;stdcall; external 'SMSLIB.DLL';
procedure DisconnectToMobile;stdcall; external 'SMSLIB.DLL';
Function IsConnected:boolean;stdcall; external 'SMSLIB.DLL';
Function IsBusy:boolean;stdcall; external 'SMSLIB.DLL';
procedure InitMobile;stdcall; external 'SMSLIB.DLL';
procedure SetSMC(SMC:PChar);stdcall; external 'SMSLIB.DLL';
Function SendSMS(phone,text:PChar):boolean;stdcall; external 'SMSLIB.DLL';
Function ReadSMS(Text,sendnum,smc,time:PChar):boolean;stdcall; external 'SMSLIB.DLL';
//=============DLL 函数调用声明 结束 =========
procedure Tfrm_gzdx.Button1Click(Sender: TObject);
begin
ConnectToMobile; //建立串口连接
memo2.Lines.Add ('已经发出连接命令。');
sleep(4000); //等待4秒,等待手机准备好
while not IsConnected do ; //直到连接成功
memo2.Lines.Add ('已经连接到手机。');
InitMobile; // 初始设置
memo2.Lines.Add ('已经初始化。');
SetSMC(PChar(SMC.Text )); //设置短信息中心号码
memo2.Lines.Add ('短信中心设置成功。');
end;
procedure Tfrm_gzdx.Button3Click(Sender: TObject);
begin
Button3.Enabled :=FALSE;
if IsBusy then //端口忙否
begin
beep;
memo2.Lines.Add ('系统正忙,请稍候再试...');
Button3.Enabled :=TRUE;
exit;
end;
if SendSMS(PChar(Phone.Text),PChar(Memo1.text)) then
memo2.Lines.Add ('发送成功.')
else
memo2.Lines.Add ('发送失败!');
Button3.Enabled :=TRUE;
end;
procedure Tfrm_gzdx.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if IsBusy then
begin
memo2.Lines.Add ('系统正忙,请稍后再退出...');
exit;
end;
DisconnectToMobile;
end;
procedure Tfrm_gzdx.Button2Click(Sender: TObject);
begin
if IsBusy then //端口忙否
begin
beep;
memo2.Lines.Add ('系统正忙,请稍候再试...');
Button3.Enabled :=TRUE;
exit;
end;
if Query_gzdx.active then Query_gzdx.close;
Query_gzdx.SQL.Clear;
Query_gzdx.SQL.add('select a.ygh ygh,a.sjhm sjhm,b.sfgz sfgz from ygzlb a,gzdxb b where a.ygh=b.ygh ');
Query_gzdx.open;
Query_gzdx.First;
while not Query_gzdx.eof do
begin
if Query_gzdx.fieldbyname('sjhm').asstring<>'' then
begin
if SendSMS(PChar(query_gzdx.FieldByName('sjhm').asstring),PChar('您本月实发工资为'+Query_gzdx.FieldByName('sfgz').asstring+memo1.text))
then
memo2.Lines.Add ('发送成功.')
else
memo2.Lines.Add ('发送失败!');
Query_gzdx.Next;
end
else
Query_gzdx.Next;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -