各位好! 我用PostMessage函數發送字符串, 但不能完整接收所發送的內容. 而用SendMessage函數確可以準確接收. 請問這是為什麼呢? 
unit Unit1;interfaceuses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;const
  WM_PostMsg = WM_User + 300;
  WM_SendMsg = WM_User + 301;
  
type
  TForm1 = class(TForm)
    Memo1: TMemo;
    Button1: TButton;
    Button2: TButton;
    Edit1: TEdit;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
    procedure WMPostMsg(var Msg: TMessage); message WM_PostMsg;
    procedure WMSendMsg(var Msg: TMessage); message WM_SendMsg;
  public
    { Public declarations }
  end;var
  Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
var
  s: string;
begin
  s := Edit1.Text;
  PostMessage(Form1.Handle, WM_PostMsg, 0, Integer(s));
end;procedure TForm1.Button2Click(Sender: TObject);
var
  s: string;
begin
  s := Edit1.Text;
  SendMessage(Form1.Handle, WM_PostMsg, 0, Integer(PChar(s)));
end;//PostMessage方法發送的不能完整接收?
procedure TForm1.WMPostMsg(var Msg: TMessage);
var
  p: PChar;
begin
  p := PChar(Msg.LParam);
  Memo1.Lines.Add('Post: ' + p);
end;//SendMessage方法發送的可以正常接收
procedure TForm1.WMSendMsg(var Msg: TMessage);
var
  p: pchar;
begin
  p := PChar(Msg.LParam);
  Memo1.Lines.Add('Send: ' + p);
end;end.