repeat sleep(10); Application.ProcessMessages; i := i + 1; If i > 30000 Then begin showmessage(''''发送超时!''''); break; end; Until bzw = true; redata:=mscomm1.Input; 接收数据 restr:=''''''''; for i:=0 to vararrayhighbound(redata,1) do restr:=restr + inttohex(redata[i],2)+'''' ''''; mscomm1.PortOpen:=false; flatmemo1.Text:=restr; end; //oncomm事件 procedure TForm1.MSComm1Comm(Sender: TObject); begin case mscomm1.CommEvent of comEvReceive: bzw := true; end; end;