根据inputmode来确定读取的格式,是字节,还是字符。
然后直接赋值就可以了!
比如读取字符格式的
var
buf:string;
begin
do
buf:=mscomm1.input;
if 退出的条件 then
begin
break;
end;
application.processmessages//加上这个可以让程序响应外来的消息。
until true
end;
然后直接赋值就可以了!
比如读取字符格式的
var
buf:string;
begin
do
buf:=mscomm1.input;
if 退出的条件 then
begin
break;
end;
application.processmessages//加上这个可以让程序响应外来的消息。
until true
end;
var
buf:variant
begin
buf:=mscomm1.input//你必须知道读到的数据类型
end
procedure TForm1.MSComm1Comm(Sender: TObject);
var vtmp,ovTmp:variant;
i,iReceived:Integer;
bTmp:Byte;
s:String;
t:Dword;
begin
if mscomm1.CommEvent=2 then
mscomm1.InputMode:=comInputModeBinary;
t:=gettickcount();
while GetTickCount-t<200 do
application.ProcessMessages;
iReceived:=mscomm1.InBufferCount;
ovtmp:=mscomm1.Input;
vtmp:=VarArrayCreate([0,127],varbyte);
vtmp:=ovtmp ;
s:='';
for i:=0 to iReceived-1 do
begin
bTmp:=vtmp[i];
s:=s+chr(bTmp);
end;
end;