[Delphi] Richedit i wstawianie tekstu w formacie RTF

0

Witam, jak mogę wstawić do RicheDita sformatowany tekst? Taki ze znacznikami formatowania, bo przy normalnym wstawianiu znak , czyli początek znacznika RTF zamienia się na \. Próbowałem sposobu z http://www.swissdelphicenter.ch/torry/showcode.php?id=1332 , ale dla zwykłego RichEdita to nie działa. Macie Jakieś pomysły?

0

... przy normalnym wstawianiu znak , czyli początek znacznika RTF zamienia się na \.

Napisz coś więcej - co i w jaki sposób wstawiasz i co dla ciebie oznacza "normalne wstawianie". U mnie przy "normalnym wstawianiu" nic się nie zamienia.
Na jakiej wersji RichEdita to testujesz (tzn. jaka jest zainstalowana w systemie)?

0

Usiłuję wstawić tekst w formacie RTF. Czyli np: "\b tekst\b0" Lecz przy wstawianiu poprzez obiekt TRichEdit.Lines lub nawet komunikatem EM_SETTEXTEX, wychodzi "\b tekst\b0", co po prostu wyświetla w RichEdicie znaki "\b tekst\b0", uznając znaczniki \b i \b0 za tekst.

// Dopisane
Aha, wersja RichEdita - 4.1

0

Cel można osiągnąć używając LoadFromFile/SaveToFile lub LoadFromStream/SaveToStream przy odpowiednio ustawionej właściwości PlainText.

Przykład:

procedure LoadRTFtext(RichEdit: TRichEdit; aRTFtext: String);
var Stream: TMemoryStream;
  Plain: Boolean;
begin
  RichEdit.Lines.BeginUpdate;
  try
    RichEdit.Text := aRTFtext;

    Stream := TMemoryStream.Create;
    try
      Plain := RichEdit.PlainText;
      RichEdit.PlainText := True;
      RichEdit.Lines.SaveToStream(Stream);

      RichEdit.PlainText := False;
      Stream.Position := 0;
      RichEdit.Lines.LoadFromStream(Stream);

      RichEdit.PlainText := Plain;
    finally
      Stream.Free;
    end;

  finally
    RichEdit.Lines.EndUpdate;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  LoadRTFtext(RichEdit1, '{abc \b abc\b0 \i abc\i0}');
end;

1 użytkowników online, w tym zalogowanych: 0, gości: 1