AGB  ·  Datenschutz  ·  Impressum  







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

TRichEdit und Delphi2009

Ein Thema von hanspeter · begonnen am 19. Jan 2009 · letzter Beitrag vom 22. Jan 2009
Antwort Antwort
hanspeter

Registriert seit: 26. Jul 2003
Ort: Leipzig
1.350 Beiträge
 
Delphi XE2 Professional
 
#1

TRichEdit und Delphi2009

  Alt 19. Jan 2009, 12:48
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:
Edt.PlainText := false;
FieldbyName('Text').asstring := EditLines.Text;

Einlesen:
Edit.SelectAll;
Edit.SelText := FieldbyName('Text').asstring
,
Alternativ habe ich auch einen Versuch über TStringStream gestartet.
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
  Mit Zitat antworten Zitat
squetk

Registriert seit: 29. Aug 2004
Ort: Cottbus
118 Beiträge
 
Delphi XE2 Professional
 
#2

Re: TRichEdit und Delphi2009

  Alt 22. Jan 2009, 19:08
Ich kenne das Problem und hatte Erfolg mit diesem WorkAround zum Laden in das Control:
Delphi-Quellcode:
    s := TStringStream.Create(FieldByName('RTFTextfeld').AsString);
    try
      RichEdit1.Lines.LoadFromStream(s);
    finally
      FreeAndNil(s);
    end;
Möglicherweise reicht das schon. Wenn nicht - das Holen vom Control geht dann so:
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;
  Mit Zitat antworten Zitat
hanspeter

Registriert seit: 26. Jul 2003
Ort: Leipzig
1.350 Beiträge
 
Delphi XE2 Professional
 
#3

Re: TRichEdit und Delphi2009

  Alt 22. Jan 2009, 19:20
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
  Mit Zitat antworten Zitat
squetk

Registriert seit: 29. Aug 2004
Ort: Cottbus
118 Beiträge
 
Delphi XE2 Professional
 
#4

Re: TRichEdit und Delphi2009

  Alt 22. Jan 2009, 19:38
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.
  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 19:44 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