![]() |
TRichEdit und Delphi2009
Hallo,
unter D2009 habe ich folgendes Problem mit dem TRichedit. Ich gebe Text ein und formatiere diesen. Nach der Änderung schreibe ich diesen in die Datenbank zurück.
Delphi-Quellcode:
Alternativ habe ich auch einen Versuch über TStringStream gestartet.
Edt.PlainText := false;
FieldbyName('Text').asstring := EditLines.Text; Einlesen: Edit.SelectAll; Edit.SelText := FieldbyName('Text').asstring , Enthält der Text mehr als eine Zeile, so funktioniert das 3 bis 4 mal. Dann steht plötzlich der RTF Rohtext im Editfeld. Also der Text mit allen Steuerzeichen. Als Datenbank wird Firebird 2.0 verwendet. Das Feld ist ein VARCHAR(2048). Probeweise habe ich mal ein Blobfield (Subtype 1 = Text) verwendet. Da funktioniert es wohl. Ich kann allerdings die Struktur der Datenbank nicht ändern. Hat wer eine Idee wie man das Problem in den Griff bekommen könnte? Gruß Peter |
Re: TRichEdit und Delphi2009
Ich kenne das Problem und hatte Erfolg mit diesem WorkAround zum Laden in das Control:
Delphi-Quellcode:
Möglicherweise reicht das schon. Wenn nicht - das Holen vom Control geht dann so:
s := TStringStream.Create(FieldByName('RTFTextfeld').AsString);
try RichEdit1.Lines.LoadFromStream(s); finally FreeAndNil(s); end;
Delphi-Quellcode:
function GetRTFText : WideString;
var RichStream: TStringStream; S: String; begin RichStream := TStringStream.Create(S); try RichEdit1.Lines.SaveToStream(RichStream); Result := RichStream.DataString; finally RichStream.Free; end; end; |
Re: TRichEdit und Delphi2009
Die erste Variante funktioniert nicht. Es geht zwar eine Weile aber irgendwann dann wieder der Konvertierungsfehler.
Die zweite Variante funktioniert. Diese verwende ich jetzt. Musste allerdings den Datentyp in der Datenbank in Blobfield ändern. Gruß Peter |
Re: TRichEdit und Delphi2009
Eigentlich sind es nicht zwei Varianten sondern jeweils zum Laden in das RTF-Control und zum Holen vom RTF-Control.
Aber ich habe ein varchar-Feld im IB/FB dafür nach wie vor in Verwendung. Das klappt. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:52 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