AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Wie bekomme ich den Zeilenumbruch weg?

Ein Thema von NicoleWagner · begonnen am 12. Jun 2020 · letzter Beitrag vom 13. Jun 2020
Antwort Antwort
NicoleWagner

Registriert seit: 6. Jul 2010
167 Beiträge
 
Delphi XE3 Professional
 
#1

Wie bekomme ich den Zeilenumbruch weg?

  Alt 12. Jun 2020, 19:02
Delphi-Version: 5
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!

Geändert von NicoleWagner (12. Jun 2020 um 19:08 Uhr)
  Mit Zitat antworten Zitat
NicoleWagner

Registriert seit: 6. Jul 2010
167 Beiträge
 
Delphi XE3 Professional
 
#2

AW: Wie bekomme ich den Zeilenumbruch weg?

  Alt 12. Jun 2020, 19:05
Anhang
Miniaturansicht angehängter Grafiken
zeilenumbruch.png  
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.490 Beiträge
 
Delphi 7 Professional
 
#3

AW: Wie bekomme ich den Zeilenumbruch weg?

  Alt 12. Jun 2020, 19:27
Wo kommt der
Zitat:
In dieses Feld wird ein Text vor-ausgefüllt
her? Hängt da eventuell schon ein Zeilenumbruch dran?

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 Edit_Bearbeiten.Text := AnsiReplaceText(Edit_Bearbeiten.Text,#13#10,'***'); machst. Wird der Text dann zu  Floater sollte abgerechnet sein, siehe in meine Mappe***5 ?
  Mit Zitat antworten Zitat
Benutzerbild von blawen
blawen

Registriert seit: 1. Dez 2003
Ort: Luterbach (CH)
677 Beiträge
 
Delphi 12 Athens
 
#4

AW: Wie bekomme ich den Zeilenumbruch weg?

  Alt 12. Jun 2020, 19:29
Obsolet
Roland

Geändert von blawen (12. Jun 2020 um 19:32 Uhr)
  Mit Zitat antworten Zitat
NicoleWagner

Registriert seit: 6. Jul 2010
167 Beiträge
 
Delphi XE3 Professional
 
#5

AW: Wie bekomme ich den Zeilenumbruch weg?

  Alt 13. Jun 2020, 11:16
@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.
  Mit Zitat antworten Zitat
Andreas L.

Registriert seit: 23. Mai 2011
Ort: Furth im Wald
308 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Wie bekomme ich den Zeilenumbruch weg?

  Alt 13. Jun 2020, 11:23
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.
Andreas Lauß
Blog
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.490 Beiträge
 
Delphi 7 Professional
 
#7

AW: Wie bekomme ich den Zeilenumbruch weg?

  Alt 13. Jun 2020, 11:35
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.

TLabel.Caption + TStrings.Text + TEdit.Text enthält immer einen Zeilenumbruch vor TEdit.Text, man muss hier also TLabel.Caption + Trim(TStrings.Text) + TEdit.Text 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.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.033 Beiträge
 
Delphi 12 Athens
 
#8

AW: Wie bekomme ich den Zeilenumbruch weg?

  Alt 13. Jun 2020, 12:02
Bei ganz neuen TStrings gibt es nun ein neues Property, womit man den letzten Zeilenumbruch abschalten kann.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:34 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz