rt

解决方案 »

  1.   

    procedure TFrmSwitchCheck.Comm1ReceiveData(Sender: TObject; Buffer: Pointer; BufferLength: Word);
    var
      i:Integer;
      recvstr,Codestr:String;    //串口接收到的字符串
      recvbuf:array[1..65536] of Char;  //Com信息缓存
    begin
      recvstr:='';
      move(buffer^,pchar(@recvbuf)^,bufferlength);
      for i:=1 to bufferlength do
        Case recvbuf[i] of
          #10,#13,#32..#127:recvstr:=recvstr+recvbuf[i];
        end;
      recvstr:=Trim(recvstr);
    end;
      

  2.   

    自己在网上搜索一下,spcomm或者是mscomm的用法 说明,然后自己试着写一下,很简单的,本来我打算吧我写的例子给你的但是好像找不到了
      

  3.   

    .属性  ●CommName:表示 COM1、 COM2等串口的名字;  ●BaudRate:根据实际需要设定的波特率,在串口打开后也可更改此值,实际波特率随之更改;  ●ParityCheck:表示是否需要奇偶校验;  ●ByteSize:根据实际情况设定的字节长度;  ●Parity:奇偶校验位;  ●StopBits:停止位;  ●SendDataEmpty:这是一个布尔型属性,为 true时表示发送缓存为空,或者发送队列里没有信息;为 false时表示发送缓存不为空,或者发送队列里有信息。  2.方法  ●Startcomm方法用于打开串口,当打开失败时通常会报错。错误主要有 7种:⑴串口已经打开;⑵打开串口错误;⑶文件句柄不是通信句柄;⑷不能够安装通信缓存;⑸不能产生事件;⑹不能产生读进程;⑺不能产生写进程;  ●StopComm方法用于关闭串口,没有返回值;  ●WriteCommData(pDataToWrite: PChar;dwSizeofDataToWrite:Word )方法是个带有布尔型返回值的函数,用于将一个字符串发送到写进程,发送成功返回 true,发送失败返回 false。执行此函数将立即得到返回值,发送操作随后执行。该函数有两个参数,其中 pDataToWrite是要发送的字符串, dwSizeofDataToWrite是发送字符串的长度。  3.事件  ●OnReceiveData :procedure (Sender: TObject;Buffer: Pointer;BufferLength: Word) of object  当有数据输入缓存时将触发该事件,在这里可以对从串口收到的数据进行处理。 Buffer中是收到的数据, BufferLength是收到的数据长度。  ●OnReceiveError : procedure(Sender: TObject; EventMask : DWORD)  当接收数据出现错误时将触发该事件。  
      

  4.   

    www.2ccc.com上有例子,可以看下,我把那个例子改掉,加了些其他的功能,它的结构也有点问题,另外它支持UNICDOE,对汉字好象有问题,你可以下了后修改,用WIDESTRING实现汉字的正常收发和显示,
    我改了后发传真可以了...