![]() |
Re: Bei einem Text in RichEdit bestimmte Wörter formatieren
Hi!
Dann schau mal, was Pos für Paramter erwartet --> F1 Ciao Frederic |
Re: Bei einem Text in RichEdit bestimmte Wörter formatieren
Zitat:
RichEdit1.SelStart:=pos('Scheisse',NochIrgendWas); PS: Das mit der Endlosschleife is tatsächlich, dass programm wurde paar mal komplett blockiert. und die attribute werden auch nicht gesetzt. |
Re: Bei einem Text in RichEdit bestimmte Wörter formatieren
Hi!
Da steht doch alles deutlich: Zitat:
Delphi-Quellcode:
und dann das von oben
if Pos(gesuchtes_wort,text) > 0 then
Ciao Frederic |
Re: Bei einem Text in RichEdit bestimmte Wörter formatieren
Überleg doch mal... woher soll pos() wissen, in welchem Text nach "scheisse" gesucht werden soll :zwinker:
Induktiver Ansatz: Pos('Welt', 'Hallo, Welt!') liefert 8. |
Re: Bei einem Text in RichEdit bestimmte Wörter formatieren
Gut das weiß ich inzwischen auch. Also das prog läuft, nur wenn ich auf denn button klicke hängt sich das prog auf. Hier mal der Code:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin while pos('Scheisse',RichEdit1.Text) > 0 do begin RichEdit1.SelStart:=pos('Scheisse',RichEdit1.Text); RichEdit1.SelLength:=8; RichEdit1.SelAttributes.Color := clBlue; RichEdit1.SelAttributes.Style := [fsBold, fsItalic]; end; end; |
Re: Bei einem Text in RichEdit bestimmte Wörter formatieren
weil das ne endlosschleife gibt, weil der das erste Scheisse immer wieder findet. Wenn ersetzt wurde erst weiter hinten wieder anfangen.
|
Re: Bei einem Text in RichEdit bestimmte Wörter formatieren
Hi!
Es wurde doch schon geschrieben, dass es mit while schief geht. Deswegen musst du es z.B. mit if machen (siehe meinen Post von oben) Ciao Frederic |
Re: Bei einem Text in RichEdit bestimmte Wörter formatieren
mann ich bin heut müde....also, nächster versuch:
Delphi-Quellcode:
oder?
procedure TForm1.Button1Click(Sender: TObject);
var temp: integer; begin while PosEx('Scheisse',RichEdit1.Text,temp) > 0 do begin RichEdit1.SelStart:=pos('Scheisse',RichEdit1.Text); RichEdit1.SelLength:=8; RichEdit1.SelAttributes.Color := clBlue; RichEdit1.SelAttributes.Style := [fsBold, fsItalic]; temp:=RichEdit1.SelStart; end; end; |
Re: Bei einem Text in RichEdit bestimmte Wörter formatieren
PosEx ist Undefinierter Bezeichner.
Also ich habe es jetzt so gemacht:
Delphi-Quellcode:
Nur etwas blöd ist, das nicht Scheisse komplett blau wird sondern Scheisse und immer nur das erste Scheisse blau gemacht wird, die anderen werden ignoriert.
procedure TForm1.Button1Click(Sender: TObject);
begin if pos('Scheisse',RichEdit1.Text) > 0 then RichEdit1.SelStart:=pos('Scheisse',RichEdit1.Text); RichEdit1.SelLength:=8; RichEdit1.SelAttributes.Color := clBlue; RichEdit1.SelAttributes.Style := [fsBold]; end; |
Re: Bei einem Text in RichEdit bestimmte Wörter formatieren
Hi!
Ja, das mit mehr als einmal geht nur PosEx. Und wenn du mal in der OH gesucht hättest, dann hättest du gesehen, dass in der Unit StrUtils deklariert ist. Er macht doch das Wort ganz blau. Was gefällt dir da nicht. Ciao Frederic |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:17 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