http://mh-nexus.de/en/unisynedit.php
Delphi2009でUnicode SynEditのSynMemoを使ってみたのだが、空ではない行の行末でエンターキーを入力した場合、キャレット位置が変わらなかった。
SynEditのコードを読んで原因特定するのが大変そうなので、とりあえずKeyPressでキャレット位置を変えることにした。
procedure TForm1.SynMemo1KeyPress(Sender: TObject; var Key: Char); begin if Ord(Key) = VK_RETURN then if Length(SynMemo1.LineText) <> 0 then if SynMemo1.CaretX = Length(SynMemo1.LineText) + 1 then if StringReplace(SynMemo1.LineText, ' ', '', [rfReplaceAll]) <> '' then SynMemo1.CaretY := SynMemo1.CaretY + 1; end;