Zitat von
Hansa:
Wieso soll was markiert sein ?
Es geht auch nicht um
HTML. Man stelle sich einen Text vor. Wird der ausgedruckt, dann soll überall, wo das vorher eingegebene Wort vorkommt genau dieses fett oder sonstwie anders gedruckt werden. Es geht darum, "in der Nähe" dieses Worts mal genauer zu gucken.
Sorry, das sich mir deine Gedankenwelt nicht gleich so erschlossen hat.
HTML war nur ein Vorschlag, hätte ja sein können das du die markierten Textstellen gespeichert ablegen wolltest.
Ich hatte das etwas anders verstanden, trotzdem kann man aus deinem Text schliessen, das du das nichtmal ausprobiert hat.
Naja egal, hier nochmal ein neuer Vorschlag...
Delphi-Quellcode:
procedure WordHighlighting(RichEdit:TRichEdit;
Text:string; Words:array of string);
var
RegExpr:TRegExpr;
i:integer;
result:string;
begin
RegExpr:=TRegExpr.Create;
try
result:=Text;
RegExpr.ModifierG:=false;
for i:=low(Words) to high(Words) do begin
RegExpr.Expression:=Words[i];
result:=
'{\rtf1' +
RegExpr.Replace(
result,
'{\\b ' + Words[i] + '}',
false
) +
'}';
end;
RichEdit.SelectAll;
RichEdit.SelText:=result;
finally
RegExpr.Free;
end;
end;
procedure TForm.ButtonClick(Sender: TObject);
var Words:array of string;
begin
setlength(Words, 2);
Words[0]:='hervorgehobender';
Words[1]:='wichtig';
WordHighlighting(
RichEdit1,
'Dies ist ein hervorgehobender Text mit wichtigen Wörtern.',
Words
);
end;