Was sagt denn der Debugger?
* Geht der Code mehrmals in
if APos > 0 then
rein?
* Wenn ja, was passiert da drin? (die Variablen/Positionen)
Soll wirklich immer nur das erste jeweilige Wort pro Zeile behandelt werden?
Wenn nicht, dann ist es erst Recht einfacher über den gesamten Text zu suchen (PosEx und Co.)
Zitat:
// 2 = Zeilenumbruch;
Wer behauptet das?
Und ich bezieh mich nichmal auf iOS/Android, wo auch noch sows wie
APos > 0
falsch wäre, da Strings nicht mehr mit Index 1 beginnen.
Ich weiß nicht mehr genau seit wann, aber spätestens in D2009 wurde das Richedit auf eine neuerere
API-Version umgestellt und seitdem sind intern die Zeilenumbrüche auf #13 (Mac), seitens der
WinAPI und auch im SelStart/SelLength, auch wenn man blöder Weise nur im .Text das durch sLineBreak (#13#10 im Windows) ersetzt wird, was dann falsche Positionen erzeugt, wenn man die Position im String 1:1 auf SelStart anwendet. :doppel-wall:
Wenn du die anhand der Zeilenposition die gesamtposition haben willst, dann solltest du die
WinAPI fragen.