AGB  ·  Datenschutz  ·  Impressum  







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

RichEdit.Text wird überschrieben

Ein Thema von himitsu · begonnen am 14. Apr 2004 · letzter Beitrag vom 15. Apr 2004
Antwort Antwort
Benutzerbild von himitsu
himitsu

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

RichEdit.Text wird überschrieben

  Alt 14. Apr 2004, 21:41
Ja, schonwieder ich


Also ich weise der Eigenschaft Richedit.Text in OnCreate (TForm) einen Wert zu, ums genauer zu sagen, übergeb' ich einen String im RichTextFormat.

Allerdings wird beim 1. Anzeigen der Komponente der zugewiesene Wert durch den noch in Lines stehenden Text ersetzt und das, was in Lines steht wird angezeigt. (auch wenn nichts in Lines steht / Lines = '')
Wenn ich dann zur Laufzeit was zuweise. dann geht alles super, nur eben nicht vorm 1. Anzeigen der Komponente.

Ich hab's auch schon statt Text, mit SetText versucht.
Refresh und co. hilf auch nichts.

Wenn etwas über Linnes zugewiesen wird, dann geht es auch.
Meinen String kann ich aber wegen des RichTextFormats auch nicht an Lines.Text, oder Lines.Add übergeben, wenn ich's so versuche, dann kommt ein Laufzeitfehler.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: RichEdit.Text wird überschrieben

  Alt 14. Apr 2004, 21:45
Moin Himitsu,

ist das ein fester Text oder kann der variieren?
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: RichEdit.Text wird überschrieben

  Alt 14. Apr 2004, 21:54
Der kann variieren - wir beim Programm start aus einem Array gelesen und wärend der Laufzeit auch mal geändert, also es wird ein anderer String aus'm Array geladen.

[EDIT]
Ahhh, hab jetzt durch Zufall 'ne Möglichkeit rausgefunden.

RichEdit überschreibt nicht nur beim 1. Anzeigen (einlesen von Lines), sondern generell beim 1. Lese-/Schreibzugriff auf Lines den Wert in Text.

Also hab' ich jetzt einfach in OnCreate (TForm)RichEdit3.Lines.Clear; reingeschrieben, vor'm Zuweisen des Strings an Text.
S := RichEdit3.Lines.Text hätte auch ausgereicht, aber das Andere ist einfacher, da ich eh keine freie Stringvariable hab.



Warum die Eigenschaft Text überhaupt "einfach" beim 1. Mal übergangen wird, ist mir dennoch ein Rätsel
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: RichEdit.Text wird überschrieben

  Alt 15. Apr 2004, 15:48
Moin Himitsu,

die Eigenschaft Text wird beim Lesen aus den Lines zusammengebaut.
Beim Schreiben werden dann die Lines aus dem an Text übergebenen Wert neu erzeugt.
Text existiert also nicht für sich, sondern ist nur für den zusammengefassten Zugriff auf Lines zuständig.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: RichEdit.Text wird überschrieben

  Alt 15. Apr 2004, 17:09
Es ist aber dennoch etwas Eigenartiges dran, denn nachdem die Lines ausgelesen, oder geändert wurden (entweder durch einen Zugriff auf Lines, oder durch anzeigen der Komponente) kann ich Text was zuweien und es geht, davor geht nicht's. Es schein sogar so, als wenn RichEdit die Zuweisung an Text sogar einfach übersieht?

Wenn vorher etwas in Text geschrieben wird, dann ist es auch genauso, wie es reingeschrieben wird drin - auch mit den ganzen Formatierungsbefehlen des RichTextFormats.

Wenn aber später etwas in Text geschrieben wird, dann werden die Formatierungsbefehle daraus entfernt und es ist nur noch der reine Text in .Text drin. Die Formatierungen werden dann anscheinend an die entsprechenden Stellen (Attributes) verschoben.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: RichEdit.Text wird überschrieben

  Alt 15. Apr 2004, 18:24
Moin Himitsu,

könntest Du nicht einfach einen kleine Umweg machen?
Den Inhalt des Arrays in einen (Memory)Stream schreiben, und dann RichEdit.Lines aus dem Stream laden?

Dann müsste die Formatierung eigentlich erhalten bleiben.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  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 16:16 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