Grundlage dür die Formatierung von Text in einem TRichEdit sind die Methoden
SelStart gibt die Position im Text an, ab der die Formatierung erfolgen soll. SelLength gibt an, wie lang der Textteil ist, der formatiert werden soll.
Mit der Methode SelAttributes werden dann für den ausgewählten Text die Formatierungen gesetzt.
Im folgendem Beispiel wird der gesamte Text in einem TRichEdit durchsucht. Text der zwischen Anführungszeichen steht wird mit der Farbe Blau und der Schrifteigenschaft Fett dargestellt. Es wird dabei davon ausgegangen, dass das TRichEdit den Namen "Textanzeige" hat.
int start=1,ende;
start=PosEx("\"",Textanzeige->Text,start);
while(start>0)
{
Textanzeige->SelStart=start;
ende=PosEx("\"",Textanzeige->Text,start+1);
Textanzeige->SelLength=(ende-start)-1;
Textanzeige->SelAttributes->Color=clBlue;
Textanzeige->SelAttributes->Style=Textanzeige->SelAttributes->Style<<fsBold;
start=PosEx("\"",Textanzeige->Text,ende+1);
}
Das zweite Beispiel zeigt, wie man eine Zeile hervorheben kann. Es wird die Zeile 3 selektiert und dann der Hintergrund dieser Zeile auf die Farbe Gelb gesetzt
Richedit::CHARFORMAT2 cm; memset(&cm,0,sizeof(Richedit::CHARFORMAT2)); cm.cbSize=sizeof(Richedit::CHARFORMAT2); cm.dwMask=CFM_BACKCOLOR; cm.crBackColor=clYellow; Textanzeige->SelStart=Textanzeige->Perform(EM_LINEINDEX, 3, 0); Textanzeige->SelLength=Textanzeige->Lines->Strings[3].Length(); Textanzeige->Perform(EM_SETCHARFORMAT, SCF_SELECTION,(LPARAM)&cm );