有这样一段SPCOMM接收代码如下:
procedure TForm1.Comm1ReceiveData(Sender: TObject; Buffer: Pointer;  //串口接收
  BufferLength: Word);  
  var  
  viewstring:string;  
  rbuf:array[0..7] of byte;  
  i:integer;  begin  
    viewstring:='';   
    move(buffer^,pchar(@rbuf)^,bufferlength);   
    for i:=0 to bufferlength-1 do  
    begin  
    viewstring:=inttohex(rbuf[i],2);  
    end;  
    edit2.Text:=viewstring;  
  end;  
请问各位大虾们:
viewstring:=inttohex(rbuf[i],2);  是什么意思?
文本控件edit2中是以十六制数呢显示呢?还是以十进制数显示?为什么?
这个问题困扰了我很久。
希望大虾帮忙解答下,谢谢!!

解决方案 »

  1.   

    inttohex,转成16进制显示,可以看看帮助
      

  2.   

    viewstring:='';  //初始化结果字符串
        move(buffer^,pchar(@rbuf)^,bufferlength);  //将接收缓冲区的数据内容拷贝到Buffer中
        for i:=0 to bufferlength-1 do  
        begin  
        viewstring:=inttohex(rbuf[i],2);  //将接收到的每个字节转换为十六进制的字符串
        end;  
        edit2.Text:=viewstring;  //显示转换之后的结果
      

  3.   

    move(buffer^,pchar(@rbuf)^,bufferlength);  //将接收缓冲区的数据内容拷贝到rBuf中 
      

  4.   

    那先麻烦大虾们到这里看看:
    http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=3688659&bbs_id=1036
    24楼的问题就是我要问的问题!
    谢谢啦!
      

  5.   

    edit2.Text只能以十进制形式显示吧
      

  6.   

       viewstring:=inttohex(rbuf[i],2);  
        end;  
        edit2.Text:=viewstring;  
    这个显示应该是16进制.