![]() |
Delphi-Version: 5
Wie bekomme ich den Zeilenumbruch weg?
Hier ist meine Vereinfachung eines Problems, das ich schon in vielen Varianten anging und dessen Typen ich mehrfach tauschte:
Es gibt ein Eingabefeld vom Typ TEdit. In dieses Feld wird ein Text vor-ausgefüllt, den der Nutzer verändern kann. OnChance dieses Edits soll der neue Text in einem Vorschaufeld ausgegeben werden. Mein Problem: Sobald in dem Edit irgend etwas verändert wird (im Screenshot schrieb ich mal eine 5 ins Feld) hockt ein Zeilenumbruch davor. Diesen Zeilenumbruch bekomme ich mit nichts weg! Nicht mit trim, nicht mit AnsiReplace oder anders. Pos findet ihn nicht mal! Bitte seht auf dem Screenshot, wie ich versuchte, jedes Stringchen zu trimmen und im Auswerten-Fenster den Wert, den das Eingabefelt von TEdit hat: Ihr seht, vor meiner "5" ist ein Zeilenumbruch. Idealerweise sollte der Zeilenumbruch nicht ex post entfernt werden, sondern niemals erzeugt. Danke für alle Tips und Tricks! |
AW: Wie bekomme ich den Zeilenumbruch weg?
Liste der Anhänge anzeigen (Anzahl: 1)
Anhang
|
AW: Wie bekomme ich den Zeilenumbruch weg?
Wo kommt der
Zitat:
Wie sieht self.Label_BearbeitenNeueZeile.Text im Debugger aus? Wenn bei der Eingabe die Zeichen an den vorhandenen Text von Edit_Bearbeiten angefügt werden, dann hilft ein Trim nicht, wenn der Zeilenumbruch vorher schon am Ende von self.Edit_Bearbeiten.Text war. Was passiert, wenn Du mal am Anfang von Edit_BearbeitenChange ein
Delphi-Quellcode:
machst. Wird der Text dann zu
Edit_Bearbeiten.Text := AnsiReplaceText(Edit_Bearbeiten.Text,#13#10,'***');
Delphi-Quellcode:
?
Floater sollte abgerechnet sein, siehe in meine Mappe***5
|
AW: Wie bekomme ich den Zeilenumbruch weg?
Obsolet
|
AW: Wie bekomme ich den Zeilenumbruch weg?
@Delphi.Narium: danke!!!
Du hast das Problem korrekt erkannt und die Lösungszeile 1:1 erwischt. Genau das ist es: Mein String wird vom Nutzer gewählt aus einem RichEdit-Nachkommen, aus dem ich es extrahierte mit s:=__.___.text; Und da hängt in der Tat noch ein Zeilenumbruch hinten dran, woher und wovon auch immer. Jetzt bin ich richtig gut drauf: Denn mit diesem Hinweis löst sich noch ein völlig anderes Ausgabe-Problem, das mich nervte. |
AW: Wie bekomme ich den Zeilenumbruch weg?
Hi Nicole,
woher der Zeilenumbruch kommt weiß ich nicht. Aber mir ist auf deinem Screenshot etwas aufgefallen. Du selektierst den Text "self.Edit_Bearbeiten.Text" und prüfst seinen Wert durch die "Auswerten/Ändern..."-Funktion. In diesem Fall zeigt der Debugger zwar den Inhalt von "self.Edit_Bearbeiten.Text" an. Aber da du das "Trim" nicht mit selektiert hast siehst du nicht wie der Wert nach dem "Trim" aussieht. Du musst also den ganzen Text "trim(self.Edit_Bearbeiten.Text)" selektieren wenn du den Wert nach dem Trim erfahren willst. |
AW: Wie bekomme ich den Zeilenumbruch weg?
Das Text-Attribut aller Nachkommen von TStrings endet mit einem Zeilenumbruch. Immer, schon seit den Anfängen von Delphi.
Das muss man sich einfach merken und wenn man Text mit anderen Strings zusammenfügen will und diesen Zeilenumbruch nicht haben will, dann muss da ein Trim drum.
Delphi-Quellcode:
enthält immer einen Zeilenumbruch vor TEdit.Text, man muss hier also
TLabel.Caption + TStrings.Text + TEdit.Text
Delphi-Quellcode:
machen. Da das Text-Attribut von TEdit nicht von TStrings abgeleitet ist, ist hier kein Trim erforderlich, da das Text-Attribut von TEdit und seinen Nachkommen nicht mit einem Zeilenumbruch endet.
TLabel.Caption + Trim(TStrings.Text) + TEdit.Text
|
AW: Wie bekomme ich den Zeilenumbruch weg?
Bei ganz neuen TStrings gibt es nun ein neues Property, womit man den letzten Zeilenumbruch abschalten kann.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:48 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz