📄 xjyhsd.~pas
字号:
unit xjyhsd;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls, ComCtrls,GVAS,RECETHR, Buttons, RXCtrls;
type
Txjyhsdform = class(TForm)
Panel1: TPanel;
CommSB: TStatusBar;
Panel2: TPanel;
edithm: TEdit;
Panel3: TPanel;
CommBtn: TBitBtn;
ExitBtn: TBitBtn;
Label1: TLabel;
procedure ExitBtnClick(Sender: TObject);
procedure edithmKeyPress(Sender: TObject; var Key: Char);
procedure FormCreate(Sender: TObject);
procedure CommBtnClick(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormPaint(Sender: TObject);
procedure FormResize(Sender: TObject);
procedure edithmExit(Sender: TObject);
private
{ Private declarations }
procedure threaddone(SENDER:TOBJECT);
procedure echomess(var x1:tmessage); message WM_MESSAGE1;
public
{ Public declarations }
end;
var
xjyhsdform: Txjyhsdform;
implementation
uses menu;
{$R *.DFM}
procedure Txjyhsdform.ExitBtnClick(Sender: TObject);
begin
close;
end;
procedure Txjyhsdform.edithmKeyPress(Sender: TObject; var Key: Char);
begin
if not (key in ['0'..'9']) and (ord(key)<>8) then
key:=#0;
end;
procedure Txjyhsdform.FormCreate(Sender: TObject);
begin
CommBtn.enabled:=true;
end;
procedure Txjyhsdform.CommBtnClick(Sender: TObject);
var
p1:pchar;
comname,INIFile:string;
code1:byte;
begin
if edithm.Text='' then
begin
Application.MessageBox('请输入2位笔号,范围在00-FF之间!','消息',MB_ICONINFORMATION);
edithm.SetFocus;
exit;
end ;
CommSB.panels[0].text:='';
CommSB.panels[1].text:='';
CommSB.panels[2].text:='';
try
getmem(p1,16);
comname:='';
//INIFile:=ExtractFileDir(APPLICATION.EXENAME)+'\HdXGXT.INI';
inifile:=ExtractFiledir(APPLICATION.EXENAME)+'\'+ExtractFilename(APPLICATION.EXENAME);//+'\hdxgxt.ini';
if not fileexists(inifile) then
inifile:=ExtractFileDir(APPLICATION.EXENAME)+'hdxgxt.ini'
else inifile:=extractfiledir(application.exename)+'\hdxgxt.ini';
if not fileexists(INIFile) then
begin
Application.MessageBox('需要设定串行通讯口','消息',MB_ICONINFORMATION);
exit;
end else
begin
getprivateprofilestring('comports','comportsnumber','01',p1,16,pchar(INIFile));
comname:=p1;
if strtoint(comname)<0 then
begin
Application.MessageBox('串口设置信息丢失,请重新设置串行口','消息',MB_ICONINFORMATION);
exit;
end;
code1:=bytedectohex(strtoint(edithm.Text));
with TWritePenCODE.Create(self.handle,strtoint(comname)+1,commsb,code1) do
BEGIN
OnTerminate := ThreadDone;
END;
CommBtn.enabled:=FALSE;
EXITBtn.Enabled:=FALSE;
end;
finally
freemem(p1,16);
end;
end;
procedure Txjyhsdform.threaddone(SENDER:TOBJECT);
BEGIN
CommBtn.enabled:=true;
EXITBtn.Enabled:=true;
END;
procedure Txjyhsdform.echomess(var x1:tmessage);
BEGIN
case ord(x1.WParam) of
Msg_Comm:
begin
case ord(x1.lparam) of
Msg_Comm_InitSuccess:CommSB.Panels[0].TEXT:='串口初始化成功';
Msg_Comm_InitFale:Application.MessageBox('串口初始化出错','消息',MB_ICONINFORMATION);
Msg_Comm_DeviceErr:Application.MessageBox('通讯设备不正常,请检查通讯器、连接线和电源','消息',MB_ICONINFORMATION);
Msg_Comm_comerror:Application.MessageBox('通讯失败!可能是您没有正确地选择串行口,请检查!','消息',MB_ICONINFORMATION);
end;
end;
Msg_Pen:
begin
case ord(x1.lparam) of
Msg_Pen_detecting:CommSB.Panels[1].text:='正在联接巡检笔..';
Msg_Pen_present:CommSB.Panels[1].text:='联接到巡检笔';
Msg_Pen_absent:CommSB.Panels[1].text:='联接巡检笔失败!';
Msg_Pen_WritePencode:CommSB.Panels[2].text:='正在设置笔号';
Msg_Pen_WritePencodeSucc:CommSB.Panels[2].text:='设置笔号正确!';
Msg_Pen_WritePencodefale:CommSB.Panels[2].text:='设置笔号错误!';
end;
end;
else ;
end;
END;
procedure Txjyhsdform.FormActivate(Sender: TObject);
begin
self.Height:=164;
self.Width:=322;
self.Top:=90;
self.Left:=round((mainform.Width-self.Width)/2);
end;
procedure Txjyhsdform.FormClose(Sender: TObject; var Action: TCloseAction);
begin
action :=cafree ;
xjyhsdform :=nil ;
end;
procedure Txjyhsdform.FormPaint(Sender: TObject);
begin
self.Height:=164;
self.Width:=322;
self.Top:=90;
self.Left:=round((mainform.Width-self.Width)/2);
end;
procedure Txjyhsdform.FormResize(Sender: TObject);
begin
self.Height:=164;
self.Width:=322;
self.Top:=90;
self.Left:=round((mainform.Width-self.Width)/2);
end;
procedure Txjyhsdform.edithmExit(Sender: TObject);
//var ch:string;
//s1,s2:string;
begin
{else
begin
ch:=uppercase(trim(edithm.Text));
try
if (length(trim(ch)))<>2 then
begin
Application.MessageBox('请输入2位笔号,范围在00-FF之间!','消息',MB_ICONINFORMATION);
edithm.SetFocus ;
edithm.Text :='';
exit;
end;
s1:=uppercase(copy(ch,1,1));
s2:=uppercase(copy(ch,2,1));
if (((uppercase(s1)<'0')or(uppercase(s1)>'F'))or((uppercase(s2)<'0')or(uppercase(s2)>'F'))) then
begin
Application.MessageBox('请输入2位合法的笔号,范围在00-FF之间!','消息',MB_ICONINFORMATION);
edithm.SetFocus ;
edithm.Text :='';
exit;
end;
except
begin
Application.MessageBox('请输入2位合法的笔号,范围在00-FF之间!','消息',MB_ICONINFORMATION);
edithm.SetFocus ;
edithm.Text :='';
exit;
end;
end;
end; }
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -