![]() |
TRichEdit - automatische Worterkennung und -formatierung
Hallo Community,
Ich versuche ein Programm zu schreiben, den Text einer TRichEdit bei Eingabe automatisch erkennt und bestimmte Begriffe automatisch formatiert. Im Prinzip also das, was der Delphi-Quelltexteditor auch macht, wenn man z.B. "//" oder "begin" oder "{$ }" eingibt. Mir ist nur nicht die eleganteste Methode dafür bekannt. Versucht habe ich es bereits mit einer Methode, die den ganzen Text der Richedit durchläuft, nach den Begriffen sucht und dann den entsprechenden Begriff markiert und formatiert. (SelStart, SelAttributes.* etc wurde dafür verwendet). Hat dann an sich auch funktioniert, allerdings mit ein paar Hässlichkeiten: - Die Cursorposition spielt verrückt sobald man Teile des Texts verändert, die sich nicht am Ende des Texts befinden - Extrem...langsam Aber es muss doch dafür eine recht simple Möglichkeit geben; schließlich hat so ziemlich jede IDE diese Funktion und ich denke mal nicht, dass man dafür tausende Zeilen Code geschrieben hat. Recherchen im Internet waren nicht ertragreich, daher wollte ich hier mal fragen wie das am besten zu lösen ist. |
AW: TRichEdit - automatische Worterkennung und -formatierung
Muss es ein TRichEdit sein?
Falls nicht, schau dir mal TSynEdit an. Ist meines Wissens OpenSource. Frag einfach mal Tante Google. |
AW: TRichEdit - automatische Worterkennung und -formatierung
Stimmt, gibt es auf
![]() |
AW: TRichEdit - automatische Worterkennung und -formatierung
Zitat:
Verwendest Du dafür zum Beispiel RegEx und zählst die Zeilen der RegEx-Komponente mit, sind das schon 1000 (geschätzt). Dann willst Du das nicht so grottenlahm haben, wie bei einem Richedit. Ergo musst Du dir eine eigene Memobox bauen, die den Text auch farblich rendert. Junge junge, alles in allem sind das dann doch einige 1000 Zeilen, denke ich. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:42 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