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/)
-   -   Delphi TRichEdit - Mehrere Wörter markieren (https://www.delphipraxis.net/158710-trichedit-mehrere-woerter-markieren.html)

Jacques Murell 27. Feb 2011 21:58

TRichEdit - Mehrere Wörter markieren
 
Moin,

mittels
Delphi-Quellcode:
  RichEdit1.SetFocus;
  RichEdit1.SelStart := RichEdit1.FindText(Suchwort,0,length(RichEdit1.Text),[stMatchCase]);
  RichEdit1.SelLength := length(Suchwort);
markiere ich ein Wort in einem RichEdit.

Ich möchte aber mehrere Wörter markieren, sprich habe ich einen Text wie "Das ist ein Test" soll "Das" und "Test" markiert werden. Wie ist dies möglich?

Danke und lg

himitsu 27. Feb 2011 22:35

AW: TRichEdit - Mehrere Wörter markieren
 
Diese Selection kenn nur ein Start und ein Ende.

Eine andere Möglichkeit wäre die Hintergünde der Wörte jeweils zu färben.

Jacques Murell 27. Feb 2011 22:38

AW: TRichEdit - Mehrere Wörter markieren
 
Hm danke, das hatte ich schon befürchtet.

Matze 28. Feb 2011 05:25

AW: TRichEdit - Mehrere Wörter markieren
 
Im Endeffekt ist das auch nicht so viel komplizierter: Die jeweiligen Stellen markieren und mit SelAttributes einfärben (nacheinander). Natürlich musst du das irgendwann wieder rückgängig machen.

Dass Wörter, die nicht unmittelbar aufeinander folgen, parallel markiert werden können, wäre für mich auch nicht sinnvoll, da es kein Standardverhalten ist. Die erste Frage wäre für mich schon, was passiert, wenn man Strg+C, Entf o.ä. drückt. ;)

-187- 28. Feb 2011 05:34

AW: TRichEdit - Mehrere Wörter markieren
 
Hmm ich habe mal was ähnliches gebaut. (Syntax Highlighter)

Ich habe auch die Selections eingefärbt und mir die Positionen der Strings in einer StringList gemerkt, sodass ich sie später wieder zurückfärben konnte.

Matze 28. Feb 2011 05:38

AW: TRichEdit - Mehrere Wörter markieren
 
Wenn nicht unterschiedliche Markierungen verwendet werden (also entweder sind welche da oder nicht), könnte man auch den kompletten Text markieren und die Hintergrundfarbe zurücksetzen. Ich weiß jedoch nicht, ob das dann unschön "flackert".


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:14 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