TMemoryStream にテキストデータを書きこもうとして
AString := 'ABCDEF';
APChar := PChar( AString );
APointer := @APChar;
MemoryStream.WriteBuffer( APointer^, Length(AString) );

としても、正しく書きこまれません。
いや、正しく書きこめないならそれで良くって、既に別の方法で
正しく書きこめているのですが、

なぜ、この書き方ではダメなのでしょうか。