关于MemoryStream的有关问题,

关于MemoryStream的问题,在线等!
假设窗口上有   Edit1   ,   Edit2  
Edit1.text   :=   'abcdefg '   ;
我想把Edit1.text的内容读到MemoryStream中,然后再把MemoryStream中的内容写到Edit2中,怎么做!

procedure   TForm1.Button1Click(Sender:   TObject);
    var
      MyStream   :   TMemoryStream   ;
      str   :   PChar   ;
begin
      str   :=   PChar(Trim(Edit1.Text))   ;   //读Edit1的内容
      MyStream   :=   TMemoryStream.Create   ;
      MyStream.WriteBuffer(PChar(str)^,Length(str));     //读到MemoryStream中
      MyStream.ReadBuffer(buf^,Length(str)-1)   ;
      Edit2.Text   :=   Char(buf)   ;
      MyStream.Free   ;
end;

上面的代码不行,怎么改?
谢谢哥哥姐姐了
^_^

------解决方案--------------------
這麼做.你少了句MyStream.Position := 0 ;
var
MyStream : TMemoryStream ;
str : PChar ;
buf: string ;
l :Integer ;
begin
str := PChar(Trim(Edit1.Text)) ;
MyStream := TMemoryStream.Create ;
l := strlen(str) ;
MyStream.WriteBuffer(PChar(str)^, l);


setlength(buf, l) ;

MyStream.Position := 0 ;
MyStream.ReadBuffer( buf[1] , l ) ;

Edit2.Text := buf ;
MyStream.Free ;