Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi in RichEdit Formatierung entfernen (https://www.delphipraxis.net/43263-richedit-formatierung-entfernen.html)

Stephan 31. Mär 2005 17:53


in RichEdit Formatierung entfernen
 
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?

NicoDE 31. Mär 2005 18:08

Re: in RichEdit Formatierung entfernen
 
Über einen temporären (TString)Stream in ein TRichEdit laden (LoadFromStream) und TRichEdit.Lines.Text auslesen.

Stephan 31. Mär 2005 18:43

Re: in RichEdit Formatierung entfernen
 
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.

NicoDE 31. Mär 2005 18:49

Re: in RichEdit Formatierung entfernen
 
Zitat:

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...

Stephan 31. Mär 2005 18:56

Re: in RichEdit Formatierung entfernen
 
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.

NicoDE 31. Mär 2005 19:17

Re: in RichEdit Formatierung entfernen
 
Zitat:

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)


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:39 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