Autor Beitrag
galagher
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2510
Erhaltene Danke: 44

Windows 10 Home
Delphi 10.1 Starter, Lazarus 2.0.6
BeitragVerfasst: So 15.07.18 20:58 
Hallo!

Ich möchte aus rtf-Code den Klartext erhalten. Momentan erzeuge ich ein TJvRichEdit, und weil dieses ein Parent benötigt, muss ich auch ein TForm als dessen übergeordnetes Element erzeugen. In dieses TJvRichEdit lese ich dann den rtf-Code ein, und eine Funktion gibt mir dann den Klartext zurück. Das alles funktioniert zwar, gefällt mir aber nicht.

Wie kann ich also aus rtf-Ccode den reinen Text ohne Formatierungs- und Steuerzeichen extrahieren, ohne den Umweg über eine temporäres TJvRichEdit?

_________________
gedunstig war's - und fahle wornen zerschellten karsig im gestrock. oh graus, es gloomt der jabberwock - und die graisligen gulpen nurmen!
espen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 90
Erhaltene Danke: 1


D6 Prof./D7 Prof. MSSQL, MySQL
BeitragVerfasst: Mo 16.07.18 10:21 

Für diesen Beitrag haben gedankt: galagher
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 16.07.18 11:43 
- Nachträglich durch die Entwickler-Ecke gelöscht -
galagher Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2510
Erhaltene Danke: 44

Windows 10 Home
Delphi 10.1 Starter, Lazarus 2.0.6
BeitragVerfasst: Mo 16.07.18 12:14 
user profile iconFrühlingsrolle hat folgendes geschrieben Zum zitierten Posting springen:
@ espen
In deinem verlinkten Beitrag wird ebenso auf ein TRichEdit zurückgegriffen. Das möchte der TE aber nicht.

@ galagher
Das, was dir nicht gefällt, wäre aber der richtige Ansatz.
Irgendwie muss TRichEdit das ja machen, ich dachte, jemand hat den nötigen Code dafür!
Was mir nich gefällt, ist das erzeugen einer Komponente (ok, das wäre noch nicht schlimm), aber das Erzeugen einer TForm finde ich unelegant. .CreateParented kannte ich nicht, werde die Codes aber ausprobieren!

_________________
gedunstig war's - und fahle wornen zerschellten karsig im gestrock. oh graus, es gloomt der jabberwock - und die graisligen gulpen nurmen!
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 16.07.18 12:21 
- Nachträglich durch die Entwickler-Ecke gelöscht -

Für diesen Beitrag haben gedankt: galagher
galagher Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2510
Erhaltene Danke: 44

Windows 10 Home
Delphi 10.1 Starter, Lazarus 2.0.6
BeitragVerfasst: Mo 16.07.18 19:36 
Dein zweites Beispiel gefällt mir wegen Application.MainForm nicht so gut!
Zum ersten Beispiel: Was ist der Unterschied zwischen CreateParented(HWND(-3)) und CreateParented(HWND_MESSAGE)?

_________________
gedunstig war's - und fahle wornen zerschellten karsig im gestrock. oh graus, es gloomt der jabberwock - und die graisligen gulpen nurmen!
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 16.07.18 20:41 
- Nachträglich durch die Entwickler-Ecke gelöscht -

Für diesen Beitrag haben gedankt: galagher
galagher Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2510
Erhaltene Danke: 44

Windows 10 Home
Delphi 10.1 Starter, Lazarus 2.0.6
BeitragVerfasst: Mo 16.07.18 21:22 
Dann danke ich euch für eure Hilfe!

Ich verwende nun diesen Code:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
function Rtf2Txt(const rtf: AnsiString): String;
begin
  with TRichEdit.CreateParented(HWND_MESSAGE) do
  begin
    SendMessage(Handle, WM_SETTEXT, 0, NativeInt(@rtf[1]));
    Result := Text;
    Free;
  end;
end;

_________________
gedunstig war's - und fahle wornen zerschellten karsig im gestrock. oh graus, es gloomt der jabberwock - und die graisligen gulpen nurmen!
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Di 17.07.18 12:16 
- Nachträglich durch die Entwickler-Ecke gelöscht -

Für diesen Beitrag haben gedankt: galagher