Ich habe ein kleines Programm, in dem Formatierungen für bestimmte Felder einer Tabelle angegeben werden können (Z.B. A2 Fett). In einem RFT Memo werden die Zellinhalte dann als Voransicht im RichText angezeigt. Auch das klappt prima.
Ich habe folgende Prozedur zum schreiben des RTF codes:
Code: Alles auswählen
procedure thallo.previewrtffield;
var stream:tstringstream;
rtfstring: string;
begin
rtfstring:=richeditpreviewline ;
if combobox3.ItemIndex=1 then rtfstring:=edit9.Text+'1'+edit10.text+rtfstring;
rtfString :='{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fswiss\fcharset0 Arial;}}'+rtfstring+'}';
stream := Tstringstream.Create(rtfString);
richedit.Text:='';
RichEdit.LoadFromStream(stream);
stream.Free;
end;
Sonderzeichen (z.B. „ “ ‘ ‚ ), die in dem string richeditpreviewline auftauchen (richeditpreviewline ist eine Kombination mehrerer Zellen eines Stringgrids), werden immer nur mit ??? im Richedit-Feld angezeigt.
Z.b. Passiert das auch, wenn ich die obige erste zeile wie folgt modifiziere:
rtfstring:=richeditpreviewline +'“' ;
Wenn ich die Zeichen direkt händisch in das Richedit-Feld kopiere (in der Kompilierten Programmversion), werden sie korrekt angezeigt. Ich gehe also davon aus, dass das Richedit-Feld grundsätzlich diese Zeichen irgendwie verarbeiten kann.
Kann mir jemand einen Tipp geben, wie ich die Sonderzeichen korrekt angezeigt bekomme? Eine 'dreckige' Version, durch ersetzen der Sonderzeichen durch deren RFT-Hexcode (z.b. \92 für ‘) habe ich schon versucht, aber ohne den gewünschten Erfolg. Mit dem Paket richmemo habe ich im übrigen die selben Erfahrungen gemacht.
Vielen Dank