![]() |
sowas {\bhallo\b} direkt in richedit laden?
kann ich sowas direkt in richedit laden, so dass es fett angezeigt wird?
Robin |
Re: sowas {\bhallo\b} direkt in richedit laden?
Hallo, wenn du eine rtf Datei hast kannst du diese mit:
Delphi-Quellcode:
laden. Genau so kannst du diese auch speichern:
RichEdit1.Lines.LoadFromFile('test.rtf');
Delphi-Quellcode:
Wenn du also ein RichEdit hast, dort den FontStyle auf bsBold setzt und den Inhalt dann abspeicherst und wieder läds, wird der Text fett angezeigt. Dazu muss aber die Eigenschaft PlainText auf False gesetzt sein.
RichEdit1.Lines.SaveToFile('test.rtf');
Gruß Mazel |
Re: sowas {\bhallo\b} direkt in richedit laden?
ja ich möchte aber ungern nden umweg über ne datei gehen, weil ich das so schon in ner datenbank habe!
|
Re: sowas {\bhallo\b} direkt in richedit laden?
loadfromstream geht auch an der o.g. stelle.
|
Re: sowas {\bhallo\b} direkt in richedit laden?
hab ich schon getestet, aber dann schreib er dass genauso in das textfeld, ohne formatierung,
|
Re: sowas {\bhallo\b} direkt in richedit laden?
Hatte das Problem auch mal und hätte nicht gedacht, dass es so einfach geht:
Delphi-Quellcode:
richedit1.text := '{\b hallo\b}';
|
Re: sowas {\bhallo\b} direkt in richedit laden?
Hallo,
vielleicht besser so:
Delphi-Quellcode:
Damit wird der RTF-Code an der Stelle des Cursors eingefügt - aber wichtig ist das command word \rtf1.
RichEdit.SelText := '{\rtf1\b hallo\b}';
Gute Nacht |
Re: sowas {\bhallo\b} direkt in richedit laden?
vielen dank, das rtf1 fehlte, jetzt gehts
|
Re: sowas {\bhallo\b} direkt in richedit laden?
Hallo,
ich muss dieses Thema nochmal auswärmen :feuerchen:, weil ich gerade selbst an diesem Problem bin. Leider kann ich die oben genannte Lösung mittels SelText nicht verwenden, weil ich, programmkonzeptbedingt, die RichEdit Line für Line auslese und bearbeite und dann wieder Line für Line zurückschreibe. Das schaut bei mir dann etwa so aus:
Delphi-Quellcode:
Das ganze funktioniert Problemlos. Nur würd ich bei den ganzen
var
S_RichEdit: String; begin for i := 0 to Pred(RichEdit.Lines.Count) do begin //Line-Text auslesen S_RichEdit := RichEdit.Lines.Strings[i]; //Mach was mit S_RichEdit (momentan SubStrings suchen und ersetzen) //auf RichEdit laden RichEdit.Lines.Strings[i] := S_RichEdit; end; end; Machwas-Teil gleich noch ne Formatierung mit verarbeiten. Unter Formatierung versteh ich:
Nun würd ich gern in die Variable "S_RichEdit" gleich Formatierungszeichen miteinfügen. Nur weiss ich nicht wie das funktioniert, da ich ja nicht direkt im RichEdit arbeite sondern in der TStrings (Lines) von RichEdit. Funktioniert das Einfügen von Formatierungen auch bei RichEdit.Lines oder nur bei SelText? Sollte es funktionieren, vielleicht könnte man mir einen Beispiel- Code zur Verfügung stellen, oder vielleicht sogar ein kleines Beispiel-Programm. |
Re: sowas {\bhallo\b} direkt in richedit laden?
Hallo,
mit Lines[] greifst du nur auf den Text zu, aber es hindert dich niemand daran eine Zeile nach der anderen zu ![]() Das Selektieren muss ja nicht unbedingt sichtbar (LockWindow) gemacht werden. Grüße vom marabu |
Re: sowas {\bhallo\b} direkt in richedit laden?
Hallo,
ich denke, dir reicht ![]()
Delphi-Quellcode:
Du kannst das auch immer "invertieren":
RichEdit.SelAttributes.Style := [fsBold];
// Text einfügen und danach die Attribute zurücksetzen
Delphi-Quellcode:
Die Schriftfarbe kannst du natürlich analog ändern.
RichEdit.SelAttributes.Style := RichEdit.Font.Style + [fsbold];
// Text einfügen RichEdit.SelAttributes.Style := RichEdit.Font.Style - [fsbold]; Ich hoffe, das ist das, was du gemeint hast. Grüße |
Re: sowas {\bhallo\b} direkt in richedit laden?
Zitat:
Alternative: RTF Text via EM_STREAMIN einfügen oder wie schon erwähnt mit RichEdit.SelAttributes arbeiten. Bsp. EM_STREAMIN: ![]() ![]() |
Re: sowas {\bhallo\b} direkt in richedit laden?
Hallo,
ich werds mal etwas ausgedehnter erklären: ich habe einen unformatierten RichEdit-Text (Beispiel): Zitat:
Items beinhalten. Nennen wir sie: Liste_Such und Liste_Tausch Meine "Machwas"-Routine sucht in dem RichEdit-Text zeilenweise nach Wörtern die in der Liste_Such drin stehen und ersetzt sie gegen Wörtern der Liste_Tausch. In dem Beispiel... ...Inhalt der Liste_Such: Katze ...Inhalt der Liste_Tausch: Maus (nur ein Item in den Listen) Das funktioniert soweit. Der RichEdit-Text würde dann lauten: Zitat:
mit angeben. Also das in dem oberen Beispiel das Wort Maus fett dargestellt wird und nicht unformatiert. Ich stell mir das so vor, beim Ersetzen bei dem neuen Wort eine Formatierungsflag mit anzugeben, dass dann automatisch vom RichEdit als RTF interpretiert wird und dann dementsprechend formatiert und angezeigt wird. Also nochmals bei dem Beispiel oben zu bleiben - etwa so: (\b<Text>\b für Wort in fett) Zitat:
Die Maus ist stohdumm. Sie, die Maus frisst nur ohne nachzudenken - die andere Maus schläft nur. Ich hoffe es ist nun verständlicher geworden, was ich machen möchte. Wär so was möglich? |
Re: sowas {\bhallo\b} direkt in richedit laden?
Hallo Helmi,
mithilfe der genannten Code-Snippets und ![]()
Delphi-Quellcode:
Grüße, Matze
function Search_And_Replace(RichEdit: TRichEdit;
SearchText, ReplaceText: string): Boolean; var startpos, Position, endpos: integer; begin startpos := 0; with RichEdit do begin endpos := Length(RichEdit.Text); Lines.BeginUpdate; while FindText(SearchText, startpos, endpos, [stMatchCase])<>-1 do begin endpos := Length(RichEdit.Text) - startpos; Position := FindText(SearchText, startpos, endpos, [stMatchCase]); Inc(startpos, Length(SearchText)); SetFocus; SelStart := Position; SelLength := Length(SearchText); RichEdit.clearselection; RichEdit.SelAttributes.Style := [fsBold]; SelText := ReplaceText; RichEdit.SelAttributes.Style := []; end; Lines.EndUpdate; end; end; procedure TForm1.Button1Click(Sender: TObject); begin Search_And_Replace(Richedit1, 'Katze', 'Maus'); end; |
Re: sowas {\bhallo\b} direkt in richedit laden?
Hallo Matze,
danke für deine Hilfe. Nur muss ich dich wieder enttäuschen - es ist nicht das was ich suche/meine. Dein Code tauscht im kompletten Text - da geht natürlich SelStart/End... Nur kann ich nur Zeilenweise tauschen (es gibt schon nen Grund dafür) deswegen auch RichEdit.Lines.Strings und bei RichEdit.Lines.Strings kann ich ja leider kein SelStart/End anwenden Deswegen auch meine Frage nach der Möglichkeit zum Einfügen von Flags vor und nach dem getauschten Wort. |
Re: sowas {\bhallo\b} direkt in richedit laden?
Hallo,
Zitat:
![]() Freundliche Grüße |
Re: sowas {\bhallo\b} direkt in richedit laden?
Danke für die Hinweise.
Werd ich mir morgen mal anschauen und es mal meinen Wünschen anpassen. Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:07 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-2025 by Thomas Breitkreuz