私がする時
RichEdit1.Text := Memo1.Text
の仮想「改行」は、Memo1
魔法のように改行 (CRLF) に変換されRichEdit
ません。これらの「改行」は、メモ テキスト バッファには保存されません。実際、Embarcadero の公式ドキュメントには次のように記載されています。
WordWrap を true に設定して、エディット コントロールがクライアント領域に収まるように右マージンでテキストを折り返すようにします。ラッピングは化粧のみです。テキストには、明示的に入力されていない改行文字は含まれません。
とにかく、別の方法は
RichEdit1.Lines.Assign(Memo1.Lines);
ただし、以下にコメントされているように、これにより仮想改行が保持されます。
アップデート
ほとんどの場合、コードに他の奇妙な点 (バグ) があるか、質問の言い回しが漠然としすぎています。ただし、VCL ラッパーで問題が発生するリスクを排除するには、次のことを試してください。
procedure TForm4.FormClick(Sender: TObject);
var
buf: PChar;
const
MAX_BUF_SIZE = 65536;
begin
GetMem(buf, MAX_BUF_SIZE * sizeof(char));
Memo1.Perform(WM_GETTEXT, MAX_BUF_SIZE, buf);
RichEdit1.Perform(WM_SETTEXT, 0, buf);
FreeMem(buf);
end;