Hi,
Kommando zurück, so funktioniert's nur bei einzeiligen Texten. Bei trichedit muß man ja auch mit den als 1 gezählten Zeilenvorschüben kämpfen.
Für Operationen am Ende eines Textes ist das aber einfach:
Delphi-Quellcode:
procedure deletelastlinebreakOhneTextNeu;//funktioniert nicht
begin
if length(richedit1.text>1 then //sicher ist sicher, wer weiß, was passiert, wenn da '' oder nur 'a' steht, ich denke aber, auch bei einem Leerstring passiert
//nichts ;
//oder auch so: if strend(pchar(text)-1))^ in [#13#10] then - was ist besser? -1 nur, da bei -2 und wenn am Ende kein #13#10 mehr auch steht, greift man in die
bei kurzen Zeilen aufden Zeilenvorschub der vorhergehenden Zeile und löscht diese gleich mit
if RichEdit1.text[length(richedit1.text)-length(richedit1.lines.linebreak)+1] in [#13,#10] //das sieht ganz schön umständlich aus,
//+1 muß sein, da ein String bei 1 Anfängt zu zählen?
then
with richedit1 do
begin
{--->} selstart:=length(text)-length(lines.linebreak)-(lines.Count-1);//selstart steht jetzt vor #13, die Anzahl der Zeilenvorschübe muß mit eingerechnet
//werden je als 1
sellength:=length(lines.linebreak);//sellength markiert #13#10
clearselection //weg damit
end
end;
Grüße
Uwe