Moin F.W.,
Zitat von
F.W.:
kann es damit zusammen hängen, dass die Zeile erst hinzugefügt wird, wenn die eigentliche Arbeit schon zu ende ist?
Das hängt damit zusammen, dass SelStart nicht die Zeilennummer, sondern die Zeichenposition (nullbasiert) enthalten muss.
Dazu könntest Du jetzt, vor dem hinzufügen der neuen Zeile, in einer Schleife die ganzen Zeilenlängen zusammenaddieren (nicht zu vergessen +2 je Zeile, da die nicht sichtbaren Zeilenendezeichen #13#10 hierbei mitzählen).
Eine andere Variante SelStart zu ermitteln wäre die Message EM_LINEINDEX. Diese muss allerdings nach dem hinzufügen der neuen Zeile an das RichEdit gesendet werden.
RichEdit1.SelStart := SendMessage(RichEdit1.Handle,EM_LINEINDEX,RichEdit1.Lines.Count-1,0);
Mit anderen Worten:
Du lässt einfach diese Zeile weg
MyLines := RichEdit1.Lines.Count; //Zeilen zählen
und tauscht die SelStart Zeile durch die oben genannte aus.
Vielleicht solltest Du SelLength am Schluss auch noch wieder auf 0 setzen, damit die Markierung verschwindet.