临时想的,未经测试,你可以试一下:
procedure TForm1.Comm1ReceiveData(Sender: TObject; Buffer: Pointer;
  BufferLength: Word);
Var
   P:PChar;
begin
  GetMem(P,BufferLength);
 try  System.Move(Buffer^,P^,BufferLength);
  Memo1.Lines.Add(StrPas(P)); finally
  FreeMem(P);
 end;end;procedure TForm1.SendData;
Var
      P:PChar;
  iSize:Integer;
begin
  iSize:=Edit1.GetTextLen+1;
  GetMem(P,iSize); try
  Edit2.GetTextBuf(P,iSize);
  Comm1.WriteCommData(P,iSize); finally
  FreeMem(P);
 end;end;