Delphi 通信控件  Comm(Spcomm)中
接收数据应调用哪个函数,格式如何  receive.text :=           // 在MEMO上显示收到的数据
 
如下我的写法是否正确:
打开通信口: Comm1.startcomm;
关闭通信口: Comm1.stopcomm;
发送数据:  Comm1.writecommdata('msend.text',20); // 在MEMO输入的数发送出去

解决方案 »

  1.   

    你写的不正确,贴一段以前我写的代码你看一看,自已体会一下(只是片段而已)
    procedure TfrmMain.comMainReceiveData(Sender: TObject; Buffer: Pointer;
      BufferLength: Word);
    var
      nIndex : Integer;
      boolZero : Boolean;
      arrByte : array [1..8] of Byte;
      strReceiveData : string;
    begin
      //内存移位
      Move(Buffer^,arrByte,BufferLength);
      strReceiveData := '';
      boolZero := True;  //从高位到低位转换Buffer
      for nIndex := BufferLength downto 1 do
      begin
        if (boolZero) and (Chr(arrByte[nIndex]) <> '0') then
          boolZero := False;
        if (boolZero = False) and (Chr(arrByte[nIndex]) <> '=') then
          strReceiveData := strReceiveData + Chr(arrByte[nIndex]);
      end;  //屏幕显示不断刷新
      LCDCurrentWeight.Indicatorstring := strReceiveData;
      RefreshLCD(LCDTare.Indicatorstring);  //毛重是否变化
      if FboolIsEnter = False then FstrGrossWeight := strReceiveData;
    end;
      

  2.   

    你首先要明白,从串口传过来的数据不是字符串!!!!!
    有没有注意到事件里有个叫Buffer的指针参数,自己慢慢体会一下