给你一个程序参考,这个是电子秤的接收程序,使用了spcomm.每次完整的通讯是使用字符g结束 。你的是会车。
//注意:电子秤设置为秤重完成发数据。
procedure Tinput_Form.Comm1ReceiveData(Sender:TObject; Buffer
ointer;
BufferLength:Word);
var t
char;
b:integer;
t1:string;
k:single;
p1:integer;
begin
//通讯返回字符串。|ST,GS,+0003.30 g
t:=Buffer;
t1:=t;
k:=0;
//新的电子称程序
//取小数点前4位,后3位
repeat
b:=Pos('g',t1);
if b>10 then
begin
p1:=Pos('.',t1);
if p1>0 then
begin
try
k:=strtofloat(Trim(copy(t1,p1-5,9)));
except k:=0;
end;
end
else
k:=0;
if k>=0.1 then
break; //如果重量达到一定,则退出。
t1:=copy(t1,b+1,Length(t1));
end
else
Exit;
until Pos('g',t1)=0;
if (k<=0.099) then
Exit;
Edit17.Text:=formatfloat('0.000',k);
Edit25.Text:=formatfloat('0',k*strtofloat(Edit22.Text));
Edit2.Text:=formatfloat('0',k*strtofloat(Edit29.Text));
SpeedButton18.Click; //保存数据。
Edit35.Text:=CreateBar(Edit35.Text); //产生商品条码。
Panel4.caption:=ComboBox13.Text+ComboBox15.Text; //填入商品名称。
end;