![]() |
jvRichEdit RTF speichern
Hallo,
ich habe ein merkwürdiges Verhalten beim Speichern und laden von RTF-Texten mit den jvRichEdits festgestellt. Ich habe Methoden zum Auslesen und Laden von RTF-Texten gehabt, die super funktioniert haben. Doch als ich dann von TRichEdit zu TJvRichEdit wechselte, speichert meine Methode nur noch RTF-Texte, die formatiert sind (fett, unterstrichen, kursiv etc), aber keinen Text ohne eine solche Formatierung. Formatierte Texte werden wieder schön angezeigt, beim Auslesen. Das verstehe ich absoult nicht. Hier mal die Methoden zum Speichern und Laden
Delphi-Quellcode:
Der StreamMode von jvRichEdit steht auf [smSelection]
//Speichern
ss:=TStringStream.Create(''); try Editor.Lines.SaveToStream(ss); ZQuery1.SQL.Clear; ZQuery1.SQL.Text:='INSERT INTO "ARTIKEL" ("KID", "TITEL", "ARTIKEL", "TAGS", "ERSTELLT") VALUES' + ' (:kid, :titel, :artikel, :tags, :erstellt)'; ZQuery1.ParamByName('kid').AsInteger:=kid; ZQuery1.ParamByName('titel').AsString:=utf8encode(eTitel.Text); ZQuery1.ParamByName('artikel').AsString:=utf8encode(ss.DataString); ZQuery1.ParamByName('tags').AsString:=''; ZQuery1.ParamByName('erstellt').AsInteger:=DateTimeToTs(now); try ZQuery1.ExecSQL; except RaiseSQLError(); end; finally ss.Free; end; /////////////////////// // Laden // /////////////////////// function _AddRtfCallback(dwCookie: Longint; pbBuff: PByte; cb: Longint; var pcb: Longint): Longint; stdcall; begin try Result := 0; pcb := TStream(dwCookie).Read(pbBuff^, cb); except Result := 1; end; end; // Ersetzt die aktuelle Auswahl durch den Inhalt des Streams procedure AddRtfFromStream(RichEditHandle: THandle; Stream: TStream); var EditStream: TEditStream; begin EditStream.dwCookie := LongInt(Stream); EditStream.dwError := 0; EditStream.pfnCallback := @_AddRtfCallback; SendMessage(RichEditHandle, EM_STREAMIN, SF_RTF + SFF_SELECTION, LongInt(@EditStream)); if EditStream.dwError <> 0 then raise Exception.Create('RichEdit operation fehlgeschlagen!'+IntToStr(Editstream.dwError)); end; [...] ss.WriteString(utf8decode(Form1.ZQuery1.FieldByName('ARTIKEL').AsString)); ss.Position:=0; AddRTFFromStream(Editor.Handle, ss); Vielen Dank im Voraus! |
Re: jvRichEdit RTF speichern
Könnt ihr bitte nochmal schauen? Ich finde den Fehler nicht...
Danke im Voraus |
Re: jvRichEdit RTF speichern
Ohne es getestet zu haben und mit wenig Ahnung, versuchs doch mal mit JvRE1.LoadfromFile oder JvRE1.SaveToFile.
|
Re: jvRichEdit RTF speichern
Ehm... Ich habe mehrere jvRichEdits in dem Programm. Bei den anderen geht's. Ich muss also was im OI verstellt haben, ohne es (noch) zu wissen. Hab jetzt die Komponente gelöscht, kompiliert, die Komponente wieder auf's Form geschmissen und jetzt geht's.
Sorry für die "Aufruhe" ;) Danke trotzdem |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:31 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