![]() |
EInvalid Operation "Element hat kein übergeodnetes Fenster"
Hallo
Habe dies schon gelesen ![]() Mein Problem geht in eine andere Richtung. Ich habe ein TRichEdit Stream und da hat man nun mal die Formatierungen. Also dachte ich mir ich erstelle mit Create eine TRichEdit Komponente. und extrahiere mir den Plain Text. Was auch gut funktioniert wenn man dies auf einem TForm macht. Nur dummerweise habe ich KEIN übergeordnetes Fenster. Meine Frage Wie komme ich sonst an den Plain Text ohne Formatierung ? |
AW: EInvalid Operation "Element hat kein übergeodnetes Fenster"
Wenn es keine Konsolenanwendung ist, dürfte es das Einfachste sein, das RichEdit unsichtbar zu stellen und irgendein Fenster als Parent zuzuweisen. Zur Not erstellt man sich halt ein Dummy-Fenster und nimmt das dann.
|
AW: EInvalid Operation "Element hat kein übergeodnetes Fenster"
Nimm doch ein Dummyform mit RichEdit, anzeigen musst Du es ja nicht ...
|
AW: EInvalid Operation "Element hat kein übergeodnetes Fenster"
Wenn Du ein wenig Zeit investierst, dann konvertierst Du
![]() ![]() Bezüglich der Codierung müsstest Du mal schauen, was das ist. Aber das sollte kein Problem sein. Entweder stehts im RTF-Quelltext (parsen) oder es ist irgend ein Standard. PS: Der Threadtitel ist irreführend, denn Du willst 'RTF nach plain text konvertieren' und hast kein Problem mit irgendeiner Exception. |
AW: EInvalid Operation "Element hat kein übergeodnetes Fenster"
Danke für die Infos
werde sie mir später anschauen bin auf dies gestoßen ![]() |
AW: EInvalid Operation "Element hat kein übergeodnetes Fenster"
Wie war das mit Dummy-Fenster? OK, ein Handle genügt ja bereits, aber ohne dieses geht es eben nicht mit einem RichEdit.
|
AW: EInvalid Operation "Element hat kein übergeodnetes Fenster"
Delphi-Quellcode:
Also gelöst habe ich es so
function RTF_To_Plain_Text(S : AnsiString) : string;
var Stream : TMemoryStream; RichEdit : TRichEdit; begin try Stream := TMemoryStream.Create; Stream.WriteBuffer(pointer(S)^ , length(S)); try RichEdit := TRichEdit.CreateParented(HWND_MESSAGE); RichEdit.Parent := nil; RichEdit.PlainText := false; RichEdit.WordWrap := false; RichEdit.Visible := false; Stream.Position := 0; RichEdit.Lines.LoadFromStream(Stream); Result := RichEdit.Lines.Text; finally RichEdit.Free; end; finally Stream.Free; end; end; Schönes Wochenende |
AW: EInvalid Operation "Element hat kein übergeodnetes Fenster"
Du hast das try jeweils falsch gesetzt.
Delphi-Quellcode:
So wäre es richtig.
bla := Tbla.Create;
try bla.Machwas; finally bla.Free; end; |
AW: EInvalid Operation "Element hat kein übergeodnetes Fenster"
Zitat:
Man lernt doch nicht aus ... |
AW: EInvalid Operation "Element hat kein übergeodnetes Fenster"
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:03 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