Einzelnen Beitrag anzeigen

PeterPanino

Registriert seit: 4. Sep 2004
1.465 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Einfaches Memo mit einfachem Einfärben von Wörtern?

  Alt 24. Mär 2015, 17:42
Das mit TRichEdit war ein guter Tipp. Ich habe jetzt das hier geschrieben, funktioniert sehr gut:
Delphi-Quellcode:
procedure ColorWords(ARichEdit: TRichEdit; AWordsStr: string);
var
  SP, TextLength: Integer;
  i: Integer;
  sl: TStringList;
  procedure ColorAWord(const ASearchStr: string);
  begin
    SP := ARichEdit.FindText(ASearchStr, 0, TextLength, []);
    while SP <> -1 do
    begin
      ARichEdit.SelStart := SP;
      ARichEdit.SelLength := Length(ASearchStr);
      ARichEdit.SelAttributes.Color := clRed;
      SP := ARichEdit.FindText(ASearchStr, SP + Length(ASearchStr), TextLength, []);
    end;
  end;

begin
  TextLength := Length(ARichEdit.Lines.Text);

  sl := TStringList.Create;
  try
    sl.Text := StringReplace(AWordsStr, ' ', #13#10, [rfReplaceAll]);
    for i := 0 to sl.count - 1 do
      ColorAWord(sl[i]);
  finally
    sl.Free;
  end;
end;

procedure TForm1.btnColorWordsClick(Sender: TObject);
begin
  ColorWords(RichEdit1, 'ein Text');
end;
  Mit Zitat antworten Zitat