AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

RichEdit und Speichern der Texte in TList

Ein Thema von runningsoft · begonnen am 21. Jan 2010 · letzter Beitrag vom 22. Jan 2010
Antwort Antwort
Benutzerbild von runningsoft
runningsoft

Registriert seit: 8. Okt 2004
Ort: Bernau
108 Beiträge
 
Delphi 10.4 Sydney
 
#1

RichEdit und Speichern der Texte in TList

  Alt 21. Jan 2010, 23:59
Hallo,

für einen Formulareditor speichere ich mehrere mit einem RichEdit erzeugte Texte in einer TList, die folgenden Record aufnimmt:

Delphi-Quellcode:
type
  TTextBauStein = record
    ID : integer;
    Item : TStrings;
   end;
Mit dieser Prozedur speichere ich die Daten in der TLIst:

Delphi-Quellcode:
procedure TForm11.ToolButton2Click(Sender: TObject);
type PMyList = ^TTextBaustein;
var Baustein : PMyList;
begin
New(Baustein);
BauStein^.ID := TextBausteinListe.Count + 1;
BauStein^.Item := RichEdit1.Lines;
TextBausteinListe.Add(Baustein);
end;
Mit dieser Prozedur rufe ich das erste Element der Liste auf und lasse mir zur Kontrolle den Text anzeigen. Das Phänomen ist nun, dass mir immer exakt der Text in der Kontrollanzeige angezeigt wird, der im RichEdit zu sehen ist und nicht etwa der ehemals gespeicherte Text. Es steht also in meinem Baustein^.Item immer genau das drin, was auch im RichEdit steht.

Delphi-Quellcode:
//Aufrufen des ersten Elementes aus TLIst
procedure TForm11.ToolButton3Click(Sender: TObject);
type PMyList = ^TTextBaustein;
var Baustein : PMyList;
    I : integer;
    GespText : string;
begin
BauStein := TextBausteinListe.Items[0];
GespText := '';
//Anzeige des im Record enthaltenen Textes
for I := 0 to BauStein^.fText.Count - 1 do
   begin
   GespText := GespText + (Baustein^.fText[I]) + #10#13;
   end;
showmessage(GespText);
end;
Weiß jemand Rat, wo der Fehler liegt oder wie ich besser den formatierten Text aus dem RichEdit in einer typisierten Datei ablegen kann?

Danke

Steffen
Steffen
  Mit Zitat antworten Zitat
Tom

Registriert seit: 7. Jan 2003
318 Beiträge
 
RAD-Studio 2009 Pro
 
#2

Re: RichEdit und Speichern der Texte in TList

  Alt 22. Jan 2010, 05:11
Zitat von runningsoft:
BauStein^.Item := RichEdit1.Lines; Das Phänomen ist nun, dass mir immer exakt der Text in der Kontrollanzeige angezeigt wird, der im RichEdit zu sehen ist und nicht etwa der ehemals gespeicherte Text. ...
Steht doch da: Baustein.Item = RichEdit.Lines. Du weißt BauStein^.Item (das ist ein Zeiger auf TStrings) RichEdit1.Lines zu (auch ein Zeiger auf TStrings. In Wahrheit möchtest Du aber den Inhalt vom RichEdit kopieren!

Also in etwa so:

Delphi-Quellcode:
Stream : TMemoryStream;
Lines : TStringList; // Zum externen Speichern des Textes

// Text in Richedit einsetzen

Lines.SaveToStream( Stream);
Stream.Position := 0;
RichEd.Lines.LoadFromStream(Stream);


// Text aus Richedit auslesen

RichEd.Lines.SaveToStream( Stream );
Stream.Position := 0;
Lines.LoadFromStream( Stream );
Damit wird auch die Formatierung des RichEdit mit gespeichert!

Tipp am Rande: Ändere Dein Record BauStein in eine eigene Klasse.
  Mit Zitat antworten Zitat
Tom

Registriert seit: 7. Jan 2003
318 Beiträge
 
RAD-Studio 2009 Pro
 
#3

Re: RichEdit und Speichern der Texte in TList

  Alt 22. Jan 2010, 05:17
Noch ein Tipp:
Zitat von runningsoft:
Delphi-Quellcode:
    GespText : string;
...
GespText := '';
for I := 0 to BauStein^.fText.Count - 1 do
   begin
   GespText := GespText + (Baustein^.fText[I]) + #10#13;
   end;
showmessage(GespText);
Macht das gleiche:

showmessage(BauStein^.fText.Text);
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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:33 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