Einzelnen Beitrag anzeigen

DrUArn

Registriert seit: 20. Mär 2003
130 Beiträge
 
Delphi 10.3 Rio
 
#5

AW: letzten linebreak aus tstrings (trichedit.lines) entfernen

  Alt 2. Apr 2015, 15:19
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

Geändert von DrUArn ( 2. Apr 2015 um 16:00 Uhr)
  Mit Zitat antworten Zitat