AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

jvRichEdit RTF speichern

Ein Thema von TheMiller · begonnen am 3. Dez 2009 · letzter Beitrag vom 5. Dez 2009
Antwort Antwort
Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#1

jvRichEdit RTF speichern

  Alt 3. Dez 2009, 13:56
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:
//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);
Der StreamMode von jvRichEdit steht auf [smSelection]

Vielen Dank im Voraus!
  Mit Zitat antworten Zitat
Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#2

Re: jvRichEdit RTF speichern

  Alt 5. Dez 2009, 12:16
Könnt ihr bitte nochmal schauen? Ich finde den Fehler nicht...

Danke im Voraus
  Mit Zitat antworten Zitat
Franzelchen

Registriert seit: 22. Mär 2007
82 Beiträge
 
#3

Re: jvRichEdit RTF speichern

  Alt 5. Dez 2009, 13:07
Ohne es getestet zu haben und mit wenig Ahnung, versuchs doch mal mit JvRE1.LoadfromFile oder JvRE1.SaveToFile.
  Mit Zitat antworten Zitat
Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#4

Re: jvRichEdit RTF speichern

  Alt 5. Dez 2009, 13:20
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
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:06 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