📄 unit1.~pas
字号:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, OleCtrls, MSCommLib_TLB, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
MSComm1: TMSComm;
GroupBox1: TGroupBox;
Label1: TLabel;
Edit1: TEdit;
Button2: TButton;
Label5: TLabel;
ComboBox2: TComboBox;
ComboBox3: TComboBox;
Label6: TLabel;
Label9: TLabel;
Edit8: TEdit;
Label10: TLabel;
Edit10: TEdit;
Label11: TLabel;
Edit11: TEdit;
Label12: TLabel;
Edit12: TEdit;
Label13: TLabel;
Edit9: TEdit;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure MSComm1Comm(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
procedure comopen; //设置串口状态
public
{ Public declarations }
comstate:integer; //状态变量,用来表示电子称是连接状态,断开状态
scom:string; //串口号
sbt:string; //波特率
comorder,startchar,endchar,charstartno,charlong:string;
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
comstate:=0;
scom:='COM1';
sbt:='9600,n,8,1';
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
if comstate=0 then
begin
comopen;
Button1.Caption :='断开电子称';
comstate:=1;
end
else
begin
if MSComm1.PortOpen =true then
MSComm1.PortOpen :=false;
Button1.Caption :='连接电子称';
comstate:=0;
end;
end;
procedure TForm1.comopen;
var s1:string;
begin
if MSComm1.PortOpen then
MSComm1.PortOpen :=false;
if scom='COM1' then
MSComm1.CommPort:=1
else
MSComm1.CommPort:=2;
MSComm1.Settings :=sbt;
MSComm1.InputMode:=0;
MSComm1.InputLen :=1;
MSComm1.RThreshold := 1;
MSComm1.SThreshold := 1;
MSComm1.PortOpen :=true;
end;
procedure TForm1.MSComm1Comm(Sender: TObject);
var ssss,sstr,slend,strcom,sweight: string;
begin
//提示:串口数据是按字节发送和接收的,一个字节一个字节的接收的
if MSComm1.PortOpen=true then
ssss:=MSComm1.Input; //读数据
if ssss=chr(strtoint(startchar)) then //如果是开始字符,则清空字符串
strcom:='';
if ssss=chr(strtoint(endchar)) then
begin // 如果是结束字符,则输出重量
sweight:=copy(strcom,strtoint(charstartno)+1,strtoint(charlong));
Edit1.Text :=sweight;
end
else //如果不是是结束字符,则继续接受数据
strcom:=strcom+ssss;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
//设置状态
scom := ComboBox2.Text;
sbt := ComboBox3.Text;
comorder := Edit8.Text;
startchar := Edit10.Text;
endchar := Edit11.Text;
charstartno := Edit12.Text;
charlong := Edit9.Text;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -