📄 telphon.pas
字号:
for j:=(BufferLength-(160-38*k-28)+1) to (BufferLength-(160-38*k-33)) do
//for j:=(BufferLength-132+1) to (BufferLength-127) do
begin
Edit5.Text:=Edit5.Text+chr(grbuf[j]);
end;
//高度
for j:=(BufferLength-(160-38*k-33)+1) to (BufferLength-(160-38*k-38)) do
//for j:=(BufferLength-127+1) to (BufferLength-122) do
begin
Edit6.Text:=Edit6.Text+chr(grbuf[j]);
end;
Cmd_Save.Click;//保存gps数据信息
end;
Edit_NO.Clear;
end;
end;
end;
end;
procedure Tfrm_Telphon.FormCreate(Sender: TObject);
var
re_id:integer;
registerTemp:TRegistry;
inputstr,get_id:string;
dy,clickedok:Boolean;
begin
dy:=false; //软件是否已到注册期、及是否允许继续使用的标志,当值为FALSE是为允许使用。
registerTemp := TRegistry.Create; //准备使用注册表
with registerTemp do
begin
RootKey:=HKEY_LOCAL_MACHINE; //存放在此根下
if OpenKey('Software\Microsoft\Windows\CurrentVersion\guider_ID',True) then
// 建一目录,存放标志值。当然也可以存放在已存在的目录下。怎么样,很难发现吧?
begin
if valueexists('gc_id') then
begin //用gc_id的值作为标志,首先判断其存在否?
re_id:=readinteger('gc_id');//读出标志值
if (re_id<>0) and (re_id<>5) then
begin //若标志值为0,则说明已注册。
//若不为0且值不到100,说明虽未注册,但允许使用的次数尚未达到。
re_id:=re_id+5; //允许标志的最大值为100,每次加5,则最多只可用20次。
Writeinteger('gc_id',re_id);//将更新后的标志值写入注册表中。
end;
if re_id=5 then dy:=true; //假如值已到100,则应注册。
end
else Writeinteger('gc_id',5);//建立标志,并置初始标志值。
end;
if dy then
begin //若dy值为TRUE,则应提示用户输入注册码,进行注册。
clickedok:=InputQuery('您使用的是非注册软件,请输入注册码:',' ',inputstr);
if clickedok then
begin
get_id:=inttostr(1234*2);//注册码为55187516,当然可加入更杂的算法。
if get_id=inputstr then
begin
Writeinteger('gc_id',0);//若输入的注册码正确,则将标志值置为0,即已注册。
CloseKey;
Free;
end
else
begin //若输入的注册码错误,应作出提示并拒绝让其继续使用
application.messagebox('注册码错误!请与作者[张志华]联系!、电子邮箱:luer88@163.net','警告框',mb_ok);
CloseKey;
Free;
application.terminate; //中止程序运行,拒绝让其继续使用
end;
end
else
begin //若用户不输入注册码,也应作出提示并拒绝让其继续使用
application.messagebox('请与作者[张志华]联系,使用注册软件!','警告框',mb_ok);
CloseKey;
Free;
application.terminate;
end;
end;
end;
Comm1.StartComm;
//SpeedButton4.Click;
Button1.Click;
end;
procedure Tfrm_Telphon.SpeedButton1Click(Sender: TObject);
var
j:integer;
begin
sbuf[1]:='E5'; //帧头
sbuf[2]:='E5'; //命令号
sbuf[3]:='02';
sbuf[5]:='08';
senddata;//调用发送函数
end;
procedure Tfrm_Telphon.Button1Click(Sender: TObject);
var
j:integer;
begin
//SendText;
Tbuf[1]:=byte($61);
Tbuf[2]:=byte($74);
Tbuf[3]:=byte($2B);
Tbuf[4]:=byte($63);
Tbuf[5]:=byte($6D);
Tbuf[6]:=byte($67);
Tbuf[7]:=byte($66);
Tbuf[8]:=byte($3D);
Tbuf[9]:=byte($31);
Tbuf[10]:=byte($0D);
SendT;
end;
procedure Tfrm_Telphon.Cmd_ReadClick(Sender: TObject);
begin
if Trim(Edit_NO.Text)='' then
begin
Application.MessageBox('读取短消息操作失败,请确认!','车载电话模块系统',mb_ok);
Edit_NO.SetFocus;
Exit;
end;
SendRead;
end;
procedure Tfrm_Telphon.SpeedButton3Click(Sender: TObject);
var
icount:int64;
begin
RRbuf[1]:=byte($61);
RRbuf[2]:=byte($74);
RRbuf[3]:=byte($2B);
RRbuf[4]:=byte($63);
RRbuf[5]:=byte($6D);
RRbuf[6]:=byte($67);
RRbuf[7]:=byte($72);
RRbuf[8]:=byte($3D);
RRbuf[9]:=byte($61);
icount:=StrToint(Edit_No.Text);
RRbuf[10]:=byte(icount);
RRbuf[11]:=byte($0D);
RRbuf[12]:=byte($0A);
Senddata;
end;
procedure Tfrm_Telphon.SpeedButton4Click(Sender: TObject);
begin
SendText;
end;
procedure Tfrm_Telphon.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
Comm1.StopComm;
end;
{SetLength(S, BufferLength); //接收RS232的数据并显示Memo1上。
Move(Buffer^, PChar(S)^, BufferLength);
if Copy(s,13,10)<>'ok' then
begin
Edit_No.Text:=Copy(s,13,10);
end;
if Copy(s,1,12)='+CMTI: "MT",' then
begin
SpeedButton3.Click;
end;
Memo1.Lines.Add(S);}
procedure Tfrm_Telphon.Timer1Timer(Sender: TObject);
begin
UnRead;
end;
procedure Tfrm_Telphon.Cmd_SaveClick(Sender: TObject);
begin
if Trim(Edit1.Text)='' then
begin
Exit;
end;
if Trim(Edit2.Text)='' then
begin
Exit;
end;
if Trim(Edit3.Text)='' then
begin
Exit;
end;
if Trim(Edit4.Text)='' then
begin
Exit;
end;
if Trim(Edit5.Text)='' then
begin
Exit;
end;
if Trim(Edit6.Text)='' then
begin
Exit;
end;
if Trim(LabeledEdit1.Text)='' then
begin
Exit;
end;
if Trim(LabeledEdit2.Text)='' then
begin
Exit;
end;
if Trim(LabeledEdit3.Text)='' then
begin
Exit;
end;
with frm_data.ADOQuery_InForMation do
begin
Close;
Sql.Clear;
Sql.Add('Select * from [InforMation]');
Sql.Add('where Telphone=:u1 and R_Time=:u2 and G_Time=:u3 and JD=:u4 and WD=:u5 and SD=:u6 and GD=:u7');
frm_data.ADOQuery_InForMation.Parameters[0].Value:=Trim(LabeledEdit1.Text);
frm_data.ADOQuery_InForMation.Parameters[1].Value:=Trim(LabeledEdit2.Text)+' '+Trim(LabeledEdit3.Text);
frm_data.ADOQuery_InForMation.Parameters[2].Value:=Trim(Edit1.Text)+' '+Trim(Edit2.Text)+' ';
frm_data.ADOQuery_InForMation.Parameters[3].Value:=Trim(Edit3.Text);
frm_data.ADOQuery_InForMation.Parameters[4].Value:=Trim(Edit4.Text);
frm_data.ADOQuery_InForMation.Parameters[5].Value:=Trim(Edit5.Text);
frm_data.ADOQuery_InForMation.Parameters[6].Value:=Trim(Edit6.Text);
Prepared;
open;
if frm_data.ADOQuery_InForMation.RecordCount>0 then
begin
Exit;
end
else
begin
with frm_data.ADOQuery_InForMation do
begin
Close;
Sql.Clear;
Sql.Add('insert into [InforMation] (Telphone,R_Time,G_Time,JD,WD,SD,GD)');
Sql.Add('values (:Telphone,:R_Time,:G_Time,:JD,:WD,:SD,:GD)');
frm_data.ADOQuery_InForMation.Parameters[0].Value:=Trim(LabeledEdit1.Text);
frm_data.ADOQuery_InForMation.Parameters[1].Value:=Trim(LabeledEdit2.Text)+' '+Trim(LabeledEdit3.Text);
frm_data.ADOQuery_InForMation.Parameters[2].Value:=Trim(Edit1.Text)+' '+Trim(Edit2.Text)+' ';
frm_data.ADOQuery_InForMation.Parameters[3].Value:=Trim(Edit3.Text);
frm_data.ADOQuery_InForMation.Parameters[4].Value:=Trim(Edit4.Text);
frm_data.ADOQuery_InForMation.Parameters[5].Value:=Trim(Edit5.Text);
frm_data.ADOQuery_InForMation.Parameters[6].Value:=Trim(Edit6.Text);
Prepared;
Execsql;
end;
end;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -