Einzelnen Beitrag anzeigen

DrUArn

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

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

  Alt 2. Apr 2015, 12:38
Hi,

Danke für die schnelle Antwort.
@himitsu: Habe schon geahnt, daß ich mir Prügel abhole. Deinen Worten nach setzt man in einem Null-terminierten String nicht einfach #0, um ihn an einer anderen Stelle zu beenden. Zu trim ..: ich möchte eben eine Neuzuweisung an Richedit1.text verhindern, da dann alle Angaben für diesen Text (Farben, Schrifttyp an und einige andere Berechnungen an diversen (sehr vielen) Stellen wieder neu durchgeführt werden werden müssen (und dass sehr oft).
@P80286: Einfacher geht's nimmer. Ich arbeite gerade bei diesem Projekt sehr viel mit selstart und sellength - darum flackerts leider immer mal etwas (man sieht dann die Markierung aufblitzen - dafür habe ich aber auch keine Lösung, man müßte verhindern, daß sellength blau eingefärbt wird), aber irgendwie habe ich diese simple Lösung nicht gesehen - danke.

so wäre meine Lösung:
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
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);//selstart steht jetzt vor #13
     sellength:=length(lines.linebreak);//sellength markiert #13#10
     clearselection //weg damit
  end
end;
Danke an alle
Uwe
  Mit Zitat antworten Zitat