Thema: Delphi Wörter farbig markieren

Einzelnen Beitrag anzeigen

Benutzerbild von S - tefano
S - tefano

Registriert seit: 16. Dez 2002
Ort: Dülmen
477 Beiträge
 
Delphi 2009 Professional
 
#2

Re: Wörter farbig markieren

  Alt 19. Aug 2003, 15:18
Hi,

zunächst musst du wissen an welchen Stellen die von dir gewünschten Zeichen stehen. Da ist eigentlich das schwierigste daran. Es gibt da Methoden wie FindFirst und FindNext (glaube ich), aber damit habe ich noch nie gearbeitet. Ich gehe den Text (anstatt Richedit.Lines etc. findest du in Richedit.Text einen zusammenhängenden String der den gesamten Text im Richedit darstellt) mit ner Schleife durch, also bspw einer for-to-do Schleife, bei der ich i von 1 bis length(Richedit.Text) laufen lasse. Wo genau du anfangen und aufhören musst zu suchen, müsstest du dann deinen Bedürfnissen anpassen.

Mit so einer Schleife hast du die Möglichkeit, dir jedes einzelne Zeichen des Textes anzugucken. Zusätzlich brauchst du noch zwei Integer- Variablen. In der einen speicherst du dir die Position vom Startzeichen (<), und in der anderen die von dem Stopzeichen (>).

Da du ja in der Schleife jedes Zeichen vom Anfang bis zum Ende durchgehen kannst, musst du nur noch wissen, was an der aktuellen Stelle steht.
Das geht per Richedit.Text[i]. Dann guckst du, ob das Zeichen entweder mit "<" oder ">" gleichzusetzen ist und merkst dir dann dementsprechend die i-Werte in einer der beiden Variablen.

Dann hast du alles was du brauchst. Jetzt sagst du dem Richedit, wo die Formatierung, die du durchführen willst, stattfinden soll.
Dafür hat es die Eigenschaften SelStart und SelLength. SelStart musst du dann den Wert der "IndexVariable", die du für "<" gefunden hast geben, SelLength ist dann die Differenz zwischen den beiden Indexvariablen.

Du kannst deine Formatierung dann mit der Eigenschaft Richedit.SelAttributes durchführen. Damit kannst du dann alles einstellen, such in der Delphi- Hilfe mal nach "TTextAttributes". Da kannst du dir angucken, was du mit SelAttributes alles verstellen kannst.

Dann noch gutes Gelingen,

S - tefano
"Sir, we are surrounded!" - "Excellent, we can attack in every direction!"
  Mit Zitat antworten Zitat