Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   SelAttributes (https://www.delphipraxis.net/205712-selattributes.html)

Amateurprofi 8. Okt 2020 14:58

SelAttributes
 
Ich suche in einem TRichEdit nach einem Text und markiere die Fundstellen mit roter, fetter Schrift
Für jeder Fundstelle:
Delphi-Quellcode:
   RichEdit.SelStart:=Fundstelle;
   RichEdit.SelLength:=Länge des gefundenen Texts;
   RichEdit.SelAttributes.Style:=[fsBold];
   RichEdit.SelAttributes.Color:=clRed;
Wenn ich danach eine zweiter Suche durchführe, bleiben die Markierungen der ersten Suche enthalten.
Um die Markierungen der ersten Suche vor der zweiten Suche zu entfernen mache ich
Delphi-Quellcode:
   var Temp:TStringList;
   begin
      Temp:=TStringList.Create;
      Temp.Assign(RichEdit.Lines);
      RichEdit.Clear;
      RichEdit.Lines.Assign(Temp);
      Temp.Free;
   end;
Frage:
Gibt es eine elegantere Methode, sowas wir SelAttributes.Clear ?
Überall wo ich gesucht habe gab es immer nur Beispiele, wie man etwas markiert, aber keine Info, wir man existierende Markierungen entfernt.

Uwe Raabe 8. Okt 2020 15:31

AW: SelAttributes
 
Vielleicht hilft dies:
Delphi-Quellcode:
RichEdit.SelAtrributes := RichEdit.DefAttributes;

Amateurprofi 8. Okt 2020 16:35

AW: SelAttributes
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1475160)
Vielleicht hilft dies:
Delphi-Quellcode:
RichEdit.SelAtrributes := RichEdit.DefAttributes;

Danke für den Tipp, Uwe.

Einfach nur
Delphi-Quellcode:
RichEdit.SelAtrributes := RichEdit.DefAttributes;
.

bringts zwar nicht, aber
Delphi-Quellcode:
   RichEdit.SelectAll
   RichEdit.SelAtrributes := RichEdit.DefAttributes;
bringt das gewünschte Resultat.


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:37 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz