![]() |
formatierung von Text im TRichEdit
Hi!
Ich habe folgendes Problem: Ich ersetze in einem TRichEdit alle "<" durch "\b<" und alle ">" durch ">\b0", damit html-tags dickgedruckt ausgegeben werden.
Code:
Leider wird aus "\b" dann "\\b", was dafür sorgt, dass die formatierung nicht wirkt, sondern vor dem "<" "\b" als Text ausgegeben wird.
text.text:=StringReplace(text.text, '<', '\b<', [rfIgnoreCase,rfReplaceAll]);
text.text:=StringReplace(text.text, '>', '>\b0', [rfIgnoreCase,rfReplaceAll]); Wenn ich es so mache:
Code:
geht es, aber ist es recht unelegant
procedure TForm1.Button1Click(Sender: TObject);
var temptext:TStringList; Begin temptext:=TStringList.Create; temptext.Text:='{\rtf1\ansi\ansicpg1252\deff0\deflang1031{\fonttbl{\f0\fnil MS Sans Serif;}}\viewkind4\uc1\pard\f0\fs16'; temptext.Text:=temptext.Text+StringReplace(text.text, '<', '\b<', [rfIgnoreCase,rfReplaceAll]); temptext.Text:=StringReplace(temptext.Text, '>', '>\b0', [rfIgnoreCase,rfReplaceAll])+'}'; temptext.SaveToFile(ExtractFilePath(Application.ExeName)+'temp.txt'); text.Lines.LoadFromFile(ExtractFilePath(Application.ExeName)+'temp.txt'); end; kann mir vielleicht wer helfen? |
Re: formatierung von Text im TRichEdit
Hi!
nur so als "Zwischenfrage": Warum speicherst du einen RTF-formatierten Text als txt-Datei? Ciao fkerber |
Re: formatierung von Text im TRichEdit
hm...kA, hab über die Dateiendung nicht nachgedacht, aber rtf wollte ich nicht nehmen, da ich viel rumprobiert habe und, um die formatierung zu "begutachten", die Datei sowieso mit notepad öffnen musste
|
Re: formatierung von Text im TRichEdit
Hi!
Auf die Schnelle hab ich mal das rausbekommen:
Delphi-Quellcode:
Verwendet:
procedure TForm1.Button1Click(Sender: TObject);
begin richedit1.Lines.SaveTofile('text.txt'); memo1.Lines.LoadFromfile('text.txt'); memo1.text:=StringReplace(memo1.text, '<', '\b<', [rfIgnoreCase,rfReplaceAll]); memo1.text:=StringReplace(memo1.text, '>', '>\b0', [rfIgnoreCase,rfReplaceAll]); memo1.Lines.SaveToFile('c:\test.rtf'); end; Richedit, in das der User schreibt. Memo, invisible, zum Text ersetzen, da kann man bestimmt noch was anderes machen. Ciao fkerber |
Re: formatierung von Text im TRichEdit
hm...
also das entspricht im prinzip meiner Lösung...Ich wollte eigentlich verhindern, die Datei zu speichern, da das später nicht per button1.click, sondern durch einen timer geschehen soll. Da das andauernde speichern aber ziemlich auf die systemresourcen gehen kann, wollte ich das richtextformat manuell benutzen, ohne diesen "speicher-lade-weg" zu benutzen |
Re: formatierung von Text im TRichEdit
Hi!
Versuch vielleicht mal das ganze mit Streams zu machen. Wär vielleicht eine Idee. Ciao fkerber |
Re: formatierung von Text im TRichEdit
lol hab ich auch schon versucht...recht erbärmliches ergebnis, aba das liegt nur daran, dass ich noch nie mit streams geabreitet habe und so nur runtimefehler rauskamen, die ich nicht gecheckt habe...werde mir wohl mal ein paar tuts dazu angucken müssen^^
|
Re: formatierung von Text im TRichEdit
ICH HABS!!!!
falls es jemdanden interessiert:
Code:
procedure TForm1.Button1Click(Sender: TObject);
var codetext:TRichEdit; Begin codetext:=TRichEdit.Create(Form1); codetext.PlainText:=true; codetext.text:='{\rtf1\ansi\ansicpg1252\deff0\deflang1031{\fonttbl{\f0\fnil MS Sans Serif;}}\viewkind4\uc1\pard\f0\fs16'; codetext.text:=codetext.text+StringReplace(text.text, '<', '\b<', [rfIgnoreCase,rfReplaceAll]); codetext.text:=StringReplace(codetext.text, '>', '>\b0', [rfIgnoreCase,rfReplaceAll]); codetext.text:=StringReplace(codetext.text, chr(13), '\par', [rfIgnoreCase,rfReplaceAll])+'}'; text.text:=codetext.text; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:25 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz