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?
... 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)?
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
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;