现在要写一个串口通讯的小程序,我单步跟踪调试时从串口读取的数据是
901651094-E07C20439,但是在程序运行的时候总是只显示 20439,不知道错误在哪里?请指教!多谢!

解决方案 »

  1.   

    procedure TfrmMain.ComPortComm(Sender: TObject);
    var
    StrComText,StrComCopy:string;
    FLength,FPosition:integer;
    begin
    if ComPort.PortOpen=False then exit;
    StrComText := StrComText + ComPort.input;
    FLength := length(StrComText);
    FPosition := pos(#13,StrComText);
    if FPosition = 0 then exit;
    if FPosition < FLength then
    begin
      StrComCopy :=trim(copy(StrComText,1,FPosition));
      StrComText := copy(StrComText,FPosition+1,FLength-FPosition);
    end
    else
    begin
      StrComCopy :=trim(StrComText);
      StrComText := '';
    end;
    edtBarText.Clear;
    edtBarText.Text := StrComCopy;
    end;
    楼上的兄弟:烦请指点代码错在哪里?多谢了!
      

  2.   

    是不是用于显示的 edtBarText 设置有问题啊?请把edtBarText.Text := StrComCopy;改为:
    ShowMessage(StrComCopy);
    ---------------------------------
    http://kmok.cn/
      

  3.   

    真是奇怪了!改为ShowMessage(StrComCopy);显示的还是901651094-E07C20439啊!edtBarText 就是一般的EDIT控件,设置需要注意什么呢?
      

  4.   

    改为ShowMessage(StrComCopy);后单步跟踪显示的是901651094-E07C20439,但是正常运行就变为20439了!问题到底出在哪里?
      

  5.   

    看看 edtBarText 的maxlength等属性,不行的话,把它删除了,重新放一个看看。
    --------------------------------------
    http://kmok.cn/