Wie fügst denn überhaupt den Text in das Synedit ein? Denn genau dort liegt das Problem. Du kannst nicht ohne weiteres Add / Insert /oder ähnliches verwenden, da diese nur eine Zeile hinzufügen und sich einen Dreck um Zeilenumbrüche kümmern. Du könntest nur alles in einer Temporären StringList machen und anschließend den Text zuweisen.
Delphi-Quellcode:
var
sl: TStringList;
begin
sl:=TStringList.Create;
sl.AddStrings(Synedit.Lines);
// Mache was mit sl
Synedit.Lines.Text:=sl.Text;
end;
Nur bei einer Zuweisung von Text werden die Zeilenumbrüche aufgelöst. Ist genau das selbe Problem wie bei Listboxen und anderen Komponenten die die Stringlist nutzen.