delphi中串口编程在等待接收代码中出现class EVariantInvalidArgError with message Invalid argument的错误,请大师们帮帮忙!
function TForm1.SendDataWait(RxLen: Integer; WaitTime: DWORD): Boolean;
var  
  TT: DWORD;
  BufLength:integer;
  i:integer;
begin
  result := False;
  TT := GetTickCount;
  while (((GetTickCount - TT) < WaitTime) and (MSComm1.InBufferCount < RxLen)) do
  begin
    Application.ProcessMessages;
    Sleep(1000);
  end;
  BufLength:= MSComm1.InBufferCount;
  if BufLength =200 then
  begin
    SetLength(RxBuf, BufLength);
    for i := 0 to 199 do RxBuf[i] := 0;
    RxBuf := MSComm1.Input;        //这里出错,如果注释这一句就没错,但串口就接收不了数据了
    if BufLength>= RxLen then
    begin
      result:= true;
    end;
    for i := 0 to (Length(RxBuf) - 1) do
        StatusBar1.Panels[1].Text := StatusBar1.Panels[1].Text + IntToHex(RxBuf[i], 2) + '  ';
  end;end;