AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein TRichEdit - automatische Worterkennung und -formatierung
Thema durchsuchen
Ansicht
Themen-Optionen

TRichEdit - automatische Worterkennung und -formatierung

Ein Thema von MCSuperior · begonnen am 8. Jul 2014 · letzter Beitrag vom 8. Jul 2014
Antwort Antwort
MCSuperior

Registriert seit: 5. Nov 2012
3 Beiträge
 
#1

TRichEdit - automatische Worterkennung und -formatierung

  Alt 8. Jul 2014, 15:18
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.
  Mit Zitat antworten Zitat
Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.338 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: TRichEdit - automatische Worterkennung und -formatierung

  Alt 8. Jul 2014, 15:27
Muss es ein TRichEdit sein?
Falls nicht, schau dir mal TSynEdit an. Ist meines Wissens OpenSource. Frag einfach mal Tante Google.
Peter
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: TRichEdit - automatische Worterkennung und -formatierung

  Alt 8. Jul 2014, 15:40
Stimmt, gibt es auf Sourceforge.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#4

AW: TRichEdit - automatische Worterkennung und -formatierung

  Alt 8. Jul 2014, 15:57
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.
Na ja. Du musst unterscheiden zwischen dem Schlüsselwort 'procedure', oder ob -wie hier- das Wort Teil eines strings ist. Dann kann es noch in einem Kommentar vorkommen, und davon gibt es auch drei Sorten (mit '//', '(*' und '{')

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.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:34 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