📄 main.~pas
字号:
unit MAIN;
interface
uses Windows, SysUtils, Classes, Graphics, Forms, Controls, Menus,
StdCtrls, Dialogs, Buttons, Messages, ExtCtrls, ComCtrls, StdActns,
ActnList, ToolWin, ImgList, jpeg, DB, ADODB, SPComm;
type
TMainForm = class(TForm)
MainMenu1: TMainMenu;
Help1: TMenuItem;
HelpAboutItem: TMenuItem;
OpenDialog: TOpenDialog;
StatusBar: TStatusBar;
ActionList1: TActionList;
EditCut1: TEditCut;
EditCopy1: TEditCopy;
EditPaste1: TEditPaste;
FileNew1: TAction;
FileSave1: TAction;
FileExit1: TAction;
FileOpen1: TAction;
FileSaveAs1: TAction;
WindowCascade1: TWindowCascade;
WindowTileHorizontal1: TWindowTileHorizontal;
WindowArrangeAll1: TWindowArrange;
WindowMinimizeAll1: TWindowMinimizeAll;
HelpAbout1: TAction;
FileClose1: TWindowClose;
WindowTileVertical1: TWindowTileVertical;
ToolBar2: TToolBar;
ToolButton3: TToolButton;
ToolButton7: TToolButton;
ImageList1: TImageList;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
N7: TMenuItem;
N8: TMenuItem;
N9: TMenuItem;
N10: TMenuItem;
Image1: TImage;
Image2: TImage;
Image3: TImage;
Image4: TImage;
Image5: TImage;
Image6: TImage;
Image7: TImage;
GroupBox1: TGroupBox;
GroupBox2: TGroupBox;
GroupBox3: TGroupBox;
Label1: TLabel;
Label2: TLabel;
ComboBox1: TComboBox;
Button1: TButton;
Button2: TButton;
ListBox1: TListBox;
ListBox2: TListBox;
Label3: TLabel;
Edit1: TEdit;
Label4: TLabel;
Edit2: TEdit;
ADOConnection1: TADOConnection;
Label5: TLabel;
Comm1: TComm;
ADOCommand1: TADOCommand;
ADOQuery1: TADOQuery;
ADOCommand2: TADOCommand;
ADOQuery2: TADOQuery;
ADOQuery3: TADOQuery;
ADOCommand3: TADOCommand;
Label6: TLabel;
ComboBox2: TComboBox;
memo1: TMemo;
dfg1: TMenuItem;
N11: TMenuItem;
procedure HelpAbout1Execute(Sender: TObject);
procedure FileExit1Execute(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure Image1Click(Sender: TObject);
procedure N4Click(Sender: TObject);
procedure N5Click(Sender: TObject);
procedure N6Click(Sender: TObject);
procedure N8Click(Sender: TObject);
procedure N10Click(Sender: TObject);
procedure Image2Click(Sender: TObject);
procedure Image3Click(Sender: TObject);
procedure Image4Click(Sender: TObject);
procedure Image5Click(Sender: TObject);
procedure Image6Click(Sender: TObject);
procedure Image7Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Comm1ReceiveError(Sender: TObject; EventMask: Cardinal);
procedure Comm1ReceiveData(Sender: TObject; Buffer: Pointer;
BufferLength: Word);
private
{ Private declarations }
//function MyThreadFunc(P:pointer):Longint;stdcall;
public
{ Public declarations }
msg_com:integer;
end;
var
MainForm: TMainForm;
card_id:string;
send_mobile_no:pchar;
receive_msg_content:pchar;
receive_msg_length:integer;
mobile:string;
implementation
{$R *.dfm}
uses CHILDWIN, about, school,unit1,unit2,unit3,unit4,unit5,unit6,unit7,unit8,unit9,
Unit10,unit11;
procedure TMainForm.HelpAbout1Execute(Sender: TObject);
begin
AboutBox.ShowModal;
end;
procedure TMainForm.FileExit1Execute(Sender: TObject);
begin
Close;
end;
procedure TMainForm.N2Click(Sender: TObject);
begin
school_info.Visible:=true;
end;
procedure TMainForm.N3Click(Sender: TObject);
begin
class_info.Visible:=true;
end;
procedure TMainForm.Image1Click(Sender: TObject);
begin
school_info.Visible:=true;
end;
procedure TMainForm.N4Click(Sender: TObject);
begin
teacher.Visible:=true;
end;
procedure TMainForm.N5Click(Sender: TObject);
begin
student.Visible:=true;
end;
procedure TMainForm.N6Click(Sender: TObject);
begin
schedule.Visible:=true;
end;
procedure TMainForm.N8Click(Sender: TObject);
//var
//tf:TFormatSettings;
begin
(*adocommand3.CommandType:=cmdText;
adocommand3.CommandText:='delete * from student_absent_status';
adocommand3.Execute;
tf.LongDateFormat:='yyyy-mm-dd';
tf.LongTimeFormat:='hh:mm:ss';
tf.ListSeparator:=' ';
tf.TimeAMString:='';
tf.TimePMString:='';
showmessage(datetimetostr(date));
adocommand3.CommandText:='insert into student_absent_status select name,class,grade from student_info where card_id not in (select card_id from daily where time>=:dt)';
adocommand3.Parameters.parambyname('dt').Value:=datetimetostr(date)+' 0:00:02';
showmessage(adocommand3.CommandText);
adocommand3.Execute; *)
form10.Visible:=true;
end;
procedure TMainForm.N10Click(Sender: TObject);
begin
_sendmsg.Visible:=true;
end;
procedure TMainForm.Image2Click(Sender: TObject);
begin
class_info.Visible:=true;
end;
procedure TMainForm.Image3Click(Sender: TObject);
begin
teacher.Visible:=true;
end;
procedure TMainForm.Image4Click(Sender: TObject);
begin
student.Visible:=true;
end;
procedure TMainForm.Image5Click(Sender: TObject);
begin
schedule.Visible:=true;
end;
procedure TMainForm.Image6Click(Sender: TObject);
begin
daily.Visible:=true;
end;
procedure TMainForm.Image7Click(Sender: TObject);
begin
_sendmsg.Visible:=true;
end;
procedure TMainForm.Button1Click(Sender: TObject);
begin
comm1.CommName:=combobox1.Text;
comm1.StartComm;
label5.Caption:=label5.Caption+' 已连接';
end;
(*
function MyThreadFunc(P:pointer):Longint;stdcall;
var
mobile1:pchar;
p1:string;
p2:string;
str1:pchar;
str2:pchar;
j:integer;
k:integer;
card_id1:string;
id:integer;
handle:hwnd;
begin
messagebox(Handle,'test',nil,MB_OK);
dialogs.showmessage('循环开始0');
p1:='您好!你的小孩于'+timetostr(time)+'进校门';
p2:='您好!你的小孩于'+timetostr(time)+'出校门';
str1:=pchar(p1);
str2:=pchar(p2);
mobile1:='0000';
dialogs.showmessage('循环开始1');
mainform.ADOQuery2.Close;
dialogs.showmessage('循环开始1.01');
mainform.ADOQuery2.sql.clear;
dialogs.showmessage('循环开始1.02');
mainform.ADOQuery2.sql.text:='select * from message';
dialogs.showmessage('循环开始1.03');
mainform.ADOQuery2.open;
dialogs.showmessage('循环开始2');
repeat
if not mainform.ADOQuery2.Eof then
begin
dialogs.showmessage('循环开始2.1');
id:=mainform.ADOQuery2.fieldbyname('id').AsInteger;
mobile1:=pchar(mainform.ADOQuery2.fieldbyname('mobile').AsString);
card_id1:=mainform.ADOQuery2.fieldbyname('card_id').AsString;
dialogs.showmessage('循环开始3 '+inttostr(id));
mainform.adocommand3.CommandType:=cmdtext;
dialogs.showmessage('循环开始3.000');
mainform.adocommand3.CommandText:='delete message where card_id=:card_id';
dialogs.showmessage('循环开始3.001');
mainform.adocommand3.Parameters.ParamByName('card_id').Value:=card_id1;
dialogs.showmessage('循环开始3.01');
mainform.adocommand3.Execute;
dialogs.showmessage('循环开始3.02');
with mainform.ADOQuery3 do
begin
dialogs.showmessage('循环开始4');
close;
sql.text:='select num from status where card_id='+quotedstr(card_id1)+'and day='+datetostr(date);
open;
dialogs.showmessage('循环开始5');
k:=fieldbyname('num').AsInteger;
if (k mod 2) <> 0 then
begin
j:=SendSms(msg_com,mobile1,str1,length(str1));
dialogs.showmessage('循环开始6');
if j<>0 then
showmessage(mobile+' send error! with error code:'+inttostr(j));
dialogs.showmessage('循环开始7');
end
else
j:=SendSms(msg_com,mobile1,str2,length(str2));
dialogs.showmessage('循环开始8');
if j<>0 then
showmessage(mobile+' send error! with error code:'+inttostr(j));
sql.clear;
sql.text:='delete status where mobile='+quotedstr(mobile1);
ExecSQL;
dialogs.showmessage('循环开始9');
end;
end;
mainform.ADOQuery2.Next;
sleep(1000);
until 0=1;
result:= 1;
end;
*)
procedure TMainForm.Button2Click(Sender: TObject);
var
i:integer;
//j:integer;
//p2:string;
//str2:pchar;
sms:Tsendmessage;
//myth:testth;
//mobile1:pchar;
// hThread:Thandle;//定义一个句柄
// ThreadID:DWord;
begin
msg_com:= strtoint(copy(combobox2.Text,4,4)) ;
i:=OpenCom(msg_com);
if i<>0 then
begin
label6.Caption:=label6.Caption+' 连接失败';
exit;
end
else
label6.Caption:=label6.Caption+' 连接成功';
showmessage('线程启动');
(*adocommand3.CommandText:='insert into message select card_id,mobile1 as mobile from student_info where name in (select name from student_absent_status where status='+quotedstr('cd')+' and operate_time='+quotedstr(datetostr(date)+'pm')+')';
adocommand3.Execute;
adocommand3.CommandText:='insert into student_absent_status select name,class,grade,'+quotedstr('wd')+' as status,'+quotedstr(datetostr(date)+'pm')+' as operate_time from student_info where card_id in (select card_id from daily where time between :t1 and :t2)';
adocommand3.Parameters.ParamByName('t1').Value:=datetostr(date)+' 0:00:01';
adocommand3.Parameters.ParamByName('t2').Value:=datetostr(date)+' 23:00:04';
adocommand3.Execute;
p2:='您好!你的小孩于'+timetostr(time)+'出校门';
str2:=pchar(p2);
mobile1:='13825294543';
j:=SendSms(mainform.msg_com,mobile1,str2,length(str2));
if(j<>0) then
showmessage(mobile1+' send error! with error code:'+inttostr(j)+'str2='+str2);
myth:=testth.Create(false);
showmessage('循环开始10.1'); *)
sms:=Tsendmessage.create;
sms.Resume;
//sendshortmessage.Execute;
//showmessage('循环开始11');
//form8.Show;
end;
procedure TMainForm.Comm1ReceiveError(Sender: TObject;
EventMask: Cardinal);
begin
showmessage('receive data error!');
end;
procedure TMainForm.Comm1ReceiveData(Sender: TObject; Buffer: Pointer;
BufferLength: Word);
type ss=array[1..500]of char ;
r1=_recordset;
var
r2:r1;
str1:^ss;
i:integer;
begin
str1:=Buffer;
card_id:='';
for i:=2 to 11 do
card_id:=card_id+str1[i];
adocommand1.CommandType:=cmdtext;
adocommand1.CommandText:='insert into daily(card_id)values('+quotedstr(card_id)+') ';
adocommand1.Execute;
adocommand1.CommandText:='select * from status where card_id='+quotedstr(card_id);
r2:=adocommand1.Execute;
if r2.EOF then
begin
adocommand1.CommandText:='insert into status(card_id)values('+quotedstr(card_id)+') ';
adocommand1.Execute;
end
else
adocommand1.CommandText:='update status set num=num+1 where card_id='+quotedstr(card_id);
adocommand1.Execute;
with adoquery1 do
begin
close;
sql.text:='select * from student_info where card_id='+quotedstr(card_id);
try
open;
except
showmessage('database access error!');
close;
end;
listbox1.items.Add(adoquery1.fieldbyname('id').AsString+' '+adoquery1.fieldbyname('name').AsString+' '+adoquery1.fieldbyname('phone1').AsString+' '+adoquery1.fieldbyname('mobile1').AsString);
(*
adocommand2.CommandType:=cmdText;
adocommand2.CommandText:='insert into message(mobile,card_id)values(:mobile,:card_id)';
adocommand2.Parameters.ParamByName('mobile').Value := adoquery1.fieldbyname('mobile1').AsString;
adocommand2.Parameters.ParamByName('card_id').Value := card_id;
adocommand2.Execute;
*)
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -