![]() |
RTF Texte teilen aber Formatierung behalten
Hallo!
Ich teile ein ganz großes RTF indem ich nach Trennern suche und dann den Text zwischen zwei Trennern in ein eigenes RTF speichere. Das geht auch ganz wunderbar, aber das Problem ist, das die Formatierungen ja im Dateikopf stehen und nicht übernommen werden wenn ich einen Teil des Dokuments irgendwo rausschneide und einzeln abspeichere. Hat jemand eine Idee wie ich das lösen könnte damit die Formatierungen übernommen werden? Ich könnte zwar in jeder Datei den Kopf der ursprünglichen Datei einfügen, aber dann hätte ich jede Menge Formatierungen drinne die gar nicht gebraucht werden. mfg mandumoal |
Re: RTF Texte teilen aber Formatierung behalten
Hi,
Das geht wahrscheinlich nur mit ![]() Das sieht dann etwa so aus:
Delphi-Quellcode:
uses
RichEdit; type TEditStreamCallBack = function(dwCookie: Longint; pbBuff: PByte; cb: Longint; var pcb: Longint): DWORD; stdcall; TEditStream = record dwCookie: Longint; dwError: Longint; pfnCallback: TEditStreamCallBack; end; function EditStreamOutCallback(dwCookie: Longint; pbBuff: PByte; cb: Longint; var pcb: Longint): DWORD; stdcall; var theStream: TStream; begin theStream := TStream(dwCookie); with theStream do begin if cb > 0 then pcb := Write(pbBuff^, cb); Result := 0; end; end; procedure GetRTFSelection(aRichEdit: TCustomRichEdit; intoStream: TStream); var editstream: TEditStream; begin with editstream do begin dwCookie := Longint(intoStream); dwError := 0; pfnCallback := EditStreamOutCallBack; end; aRichedit.Perform(EM_STREAMOUT, SF_RTF or SFF_SELECTION, Longint(@editstream)); end; procedure TForm1.Button1Click(Sender: TObject); var ms: TMemoryStream; begin // 1. Text markieren RichEdit1.SelStart := 0; // von RichEdit1.SelLength := 200; // bis Zeichen ändern! ms := TMemoryStream.Create; try // 2. Rtf Formatierung der Markierung auslesen GetRTFSelection(RichEdit1, ms); // 3. Speichern ms.SaveToFile('c:\test.rtf'); finally ms.Free; end; end; |
Re: RTF Texte teilen aber Formatierung behalten
Danke, so werd ich es mal probieren!
|
Re: RTF Texte teilen aber Formatierung behalten
Hallo alle!
Leider wirft mir D4Pro zum Thema EM_STREAMOUT einen "undeclared identifier" an den Kopf und sagt das auch zum SF_TEXT... mach ich was falsch oder <noob>muss ich jetzt upgraden?</noob>
Delphi-Quellcode:
Danke schonmal im Voraus!
SendMessage(wnd, EM_STREAMOUT, SF_TEXT, lParam(@editstream[1]));
Max |
Re: RTF Texte teilen aber Formatierung behalten
Hallo!
Die Unit RichEdit hast du eingebunden? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:54 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