为什么在OnTrigger事件中
procedure Tsmsfrm.m_ComPortTrigger(CP: TObject; Msg, TriggerHandle,
  Data: Word);
var
  I : Word;
  C : Char;
  s : String;
begin
  try
  case Msg of
    APW_TRIGGERDATA :
      {got 'login', send response}
      ;
    APW_TRIGGERAVAIL :
      {extract and display/process the data}
      begin
        s:='';
        for I:= 1 to Data do
        begin
          C :=m_ComPort.GetChar;
          s:=s+c;
        end;
        receive_data(s);  //跳转到函数中
      end;
    APW_TRIGGERTIMER :
      {timed out waiting for login prompt, handle error}
      ;
  end;
  except
  end;
end;
  
为什么这时的s只是我要接收的数据的一部分?要怎样才能接收完全?