Claw, sper ca nu e prea tarziu, nu am prea avut timp:
Sus la
uses pui asta, e necesar pentru functia
PosEx:
uses StrUtils;
Declari functia:
function Textu: TTextAttributes;
begin
if form1.RichEdit1.SelLength > 0 then textu:=form1.RichEdit1.SelAttributes else textu:=form1.RichEdit1.DefAttributes;
end;
unde
form1.RichEdit1 e RichEdit-ul.
Si procedura propriu-zisa de highlighting:
var i,len,posu,posu2:integer;
src,tmp:string;
begin
tmp:=RichEdit1.text;
for i:=1 to 2 do
begin
if i=1 then src:='''' else src:='"';
posu:=0;
posu2:=0;
while PosEx(src,tmp,posu+1+posu2)>0 do
begin
posu:=PosEx(src,tmp,posu+1+posu2);
posu2:=PosEx(src,tmp,posu+1)-posu;
if posu2<1 then break;
RichEdit1.SelStart:=posu-1;
RichEdit1.SelLength:=posu2+1;
Textu.Color:=clGreen;
end;
end;
for i:=1 to 2 do
begin
if i=1 then begin len:=4;src:='test';end else begin len:=5;src:='test2';end;
posu:=0;
while PosEx(src,tmp,posu+1)>0 do
begin
posu:=PosEx(src,tmp,posu+1);
if posu<>0 then
begin
RichEdit1.SelStart:=posu-1;
RichEdit1.SelLength:=len;
Textu.Color:=clRed;
end;
end;
end;
Rezultat:

Sper ca e evident ca asta nu e in timp real, trebuie sa se efectueze procedura dupa fiecare secunda sau cat vrei, dupa fiecare caracter introdus, nu stiu, cum vrei
LE: In cazul de sus,
test si
test2 vor fi cu rosu chiar daca sunt in interiorul ghilimelelor, daca vrei sa fie cu verde cand sunt intre ghilimele, schimba ordinea celor 2 for-uri: Prima data cel care coloreaza cu rosu test si test2, apoi cel care coloreaza cu verde ce e cuprins intre ghilimele