急啊,哪位大歌有?

解决方案 »

  1.   

    给你一个使用例子:
    var
      CommForm: TCommForm;
      ss :string;
      savef,readf :file of char;
      i,j :longint;procedure TCommForm.FormCreate(Sender: TObject);
    begin
      mscomm.commport:=1;
      mscomm.settings:='9600,n,8,1';
      mscomm.inputlen:=1;
      mscomm.inbuffercount:=0;
      mscomm.portopen:=true;
      ss:='';
      i:=0;
      j:=0;
      assignfile(savef,'save1');
      rewrite(savef);
      assignfile(readf,'read1');
      reset(readf);
    end;procedure TCommForm.btnConfirmClick(Sender: TObject);
    begin
      if mscomm.portopen then
        mscomm.portopen:=false;
        mscomm.commport:=strtoint(edtCommport.text);
        mscomm.settings:=edtCommsetting.Text;
    end;procedure TCommForm.MSCommComm(Sender: TObject);
    var
      filenrc :char;
      buffer :variant;
      s1:string;
      c :char;
    begin
    case mscomm.commEvent of
    comEvSend:
      begin
      while not(eof(readf)) do
        begin
        read(readf,filenrc);
        mscomm.output:=filenrc;
        j:=j+1;
        lblDisplay.caption:=inttostr(j);
        if mscomm.outbuffercount>=2 then
        break;
        end;
      end;
    comEvReceive:
      begin
        buffer:=mscomm.Input;
        s1:=buffer;
        c:=s1[1];
        ss:=ss+c;
        i:=i+1;
        lblDisplay.caption:=c+inttostr(i);
        write(savef,c);
        if (c=chr(10))or(c=chr(13)) then
          begin
            lblDisplay.caption:='cr'+inttostr(i);
            memDisplay.lines.add(ss);
            ss:='';
          end;
      end;
    end;
    end;