AGB  ·  Datenschutz  ·  Impressum  







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

in RichEdit Formatierung entfernen

Ein Thema von Stephan · begonnen am 31. Mär 2005 · letzter Beitrag vom 31. Mär 2005
Antwort Antwort
Stephan

Registriert seit: 28. Jun 2002
Ort: Tuttlingen
245 Beiträge
 
Delphi 2007 Professional
 
#1

in RichEdit Formatierung entfernen

  Alt 31. Mär 2005, 17:53
Hi,

Ich habe in einem String sämtliche Inhalte (inkl. Formatierungselemente) eines RichEdit gespeichert. Nun möchte ich alle Formatierungselemente entfernen, sodass nur noch der eigentliche Text im String ist. Wie kann ich soetwas realisieren?
viele Grüße

Stephan
  Mit Zitat antworten Zitat
NicoDE
(Gast)

n/a Beiträge
 
#2

Re: in RichEdit Formatierung entfernen

  Alt 31. Mär 2005, 18:08
Über einen temporären (TString)Stream in ein TRichEdit laden (LoadFromStream) und TRichEdit.Lines.Text auslesen.
  Mit Zitat antworten Zitat
Stephan

Registriert seit: 28. Jun 2002
Ort: Tuttlingen
245 Beiträge
 
Delphi 2007 Professional
 
#3

Re: in RichEdit Formatierung entfernen

  Alt 31. Mär 2005, 18:43
Hi,

Ich hab mir folgende Funktion gebastelt:

Delphi-Quellcode:
function TForm1.RTFtoText(rtf:string):string;
var
  temp_richedit: TRichedit;
  temp_str: string;
  ss: TStringStream;
begin
  ss := TStringStream.Create(rtf);
  temp_richedit := TRichEdit.Create(nil);
  try
  temp_richedit.Lines.LoadFromStream(ss);
  result := temp_richedit.Lines.Text;
  finally
   ss.free;
   temp_richedit.Free;
end;
end;
Ich erhalte allerdings folgenden Fehler:

31.03.2005 19:42:19 : EInvalidOperation - Element '' hat kein übergeordnetes Fenster

das Problem scheints chon bei temp_richedit.Lines.LoadFromStream(ss) aufzutreten.
viele Grüße

Stephan
  Mit Zitat antworten Zitat
NicoDE
(Gast)

n/a Beiträge
 
#4

Re: in RichEdit Formatierung entfernen

  Alt 31. Mär 2005, 18:49
Zitat von Stephan:
das Problem scheints chon bei temp_richedit.Lines.LoadFromStream(ss) aufzutreten.
Das Streaming von RichEdit-Controls läuft über Fenster-Nachrichten. Könnte also sein, dass TRichEdit.Create(nil) die Ursache ist.
Versuche es erstmal mit einen TRichEdit auf der Form, bevor Du versuchst es mit einem dynamischen RichEdit zu versuchen...
  Mit Zitat antworten Zitat
Stephan

Registriert seit: 28. Jun 2002
Ort: Tuttlingen
245 Beiträge
 
Delphi 2007 Professional
 
#5

Re: in RichEdit Formatierung entfernen

  Alt 31. Mär 2005, 18:56
Hi NicoDE,

Ja, das war das Problem. Mit einem RichEdit auf meinem Form klappts problemlos. Wobei mir die Lösung persönlich nicht so gut gefällt da ich ja jetzt ein RichEdit "unnötig" irgendwo auf dem Form versteck

Aber Hauptsache es klappt erstmal, danke für den Lösungshinweis.
viele Grüße

Stephan
  Mit Zitat antworten Zitat
NicoDE
(Gast)

n/a Beiträge
 
#6

Re: in RichEdit Formatierung entfernen

  Alt 31. Mär 2005, 19:17
Zitat von Stephan:
Wobei mir die Lösung persönlich nicht so gut gefällt da ich ja jetzt ein RichEdit "unnötig" irgendwo auf dem Form versteck
Versuch's mit:
Delphi-Quellcode:
function TForm1.RTFtoText(const RTF: string): string;
var
  Stream: TStringStream;
begin
  Result := EmptyStr;
  Stream := TStringStream.Create(RTF);
  try
    with TRichEdit.Create(Self) do
    try
      Parent := Self;
      Lines.LoadFromStream(Stream);
      Result := Lines.Text;
    finally
      Free;
    end;
  finally
    Stream.Free;
  end;
end;
(ungetestet, habe kein Delphi zur Hand)
  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 18:43 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