Einzelnen Beitrag anzeigen

NicoDE
(Gast)

n/a Beiträge
 
#4

Re: Verschiedene Zeichensätze in einer Anwendung !!??!!

  Alt 28. Jul 2004, 15:31
Benutze mal einen Stream um den (offensichtlich) fehlerhaften RTF-Quelltext in ein Memo zu schreiben. Und schau mal nach, ob der verwendete Zeichsatz stimmt.

BTW, Welche Delphi-Version?

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  RichEdit1.Clear;
  RichEdit1.Font.Charset := RUSSIAN_CHARSET;
  RichEdit1.Lines.Add('Çäðàâñòâóëòå!'); // Здравствулте!
end;

procedure TForm1.Button2Click(Sender: TObject);
var
  Stream: TStringStream;
begin
  Stream := TStringStream.Create(EmptyStr);
  try
    RichEdit1.Lines.SaveToStream(Stream);
    Memo1.Text := Stream.DataString;
  finally
    Stream.Free;
  end;
end;

procedure TForm1.Button3Click(Sender: TObject);
var
  Stream: TStringStream;
begin
  Stream := TStringStream.Create(Memo1.Text);
  try
    RichEdit1.Lines.LoadFromStream(Stream);
  finally
    Stream.Free;
  end;
end;
Bei mir ist der RTF-Quelltext mit Delphi 6 (Update Pack 2, RTL Update 3) insofern fehlerhaft, als dass der zweite Font (\f1) erst nach dem Text selektiert wird. Nach Einfügen von \f1 nach \fs16 inklusive Zurückschreiben mit Button3 führt zum gewünschten Ergebnis

Ist zwar keine Lösung, aber erklärt das Problem.
Vielleicht kann man das Problem fixen, indem man die erste Zeile des RTF-Quelltextes fixt...


Gruss Nico
  Mit Zitat antworten Zitat