Einzelnen Beitrag anzeigen

omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#9

Re: [Richedit]einzelne Wörten hervorheben

  Alt 17. Jan 2008, 11:15
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;
  Mit Zitat antworten Zitat