okay, så er der flere måder at gøre det på..
enten kan du bruge selve Richedit komponentet ved brug af Richedit.SelAttributes.Color:=clred;
Problemet med denne metode er at den er sindsyg langsom ved konventering af længere stykker tekst.
Den mest optimale metode er således:
var format:TCharFormatA;
begin
format.cbSize := sizeof(format);
format.dwmask := CFM_COLOR;
format.crTextColor :=ColorToRGB(ClGreen);
SendMessage(Richedit1.Handle, WM_SETREDRAW, 0, 0); //Stopper den i at "RePainte" ved ændringer
SendMessage(Richedit1.Handle, EM_SETCHARFORMAT, SCF_SELECTION, LongInt(@format));
SendMessage(Richedit1.Handle, WM_SETREDRAW, 1, 0); //tillader at der "tegnes" igen :)
InvalidateRect(Richedit1.handle,0,true); //Opdater igen :)
Koden regner med at du har valgt den/de karakterer der skal ændres farve på.
Dette kan du gøre vha.
richedit1.selstart:=length(richedit1.text)-1;
richedit1.sellength:=1;
For yderligere info angående optimering af koden, kan jeg klart anbefale at du læser følgende dokument. Det er godtnok skrevet til brug med C++, men omskrivningen til Pascal er forholdsvis simpel
http://home.att.net/~robertdunn/Papers/FasterSyntaxHighlighting.docMed venlig hilsen
Ken Christensen