Hast du mal geschaut, welche Zeilenumbrüche in Buffer vorhanden sind?
SelStart verwendet den Windows-Standard #13#10.
PS: ich würde die CharMap nicht mehr Zeichen für Zeichen ins UpperCase übersetzen, sondern gleich alles auf einmal ... immerhin sind es dank
Unicode ja nun 65-tausend und keine 256 Zeichen mehr.
Und diese 128 KB der CharMap machen sich nicht so gut auf'm Stack.
(glaub's mir, hab das in meinem himXML anfangs auch so versucht und Delphi abeitet nicht so gut, wenn der Stack mit zuvielen lokalen Variablen belegt wird)