Cześć wszystkim.
Mam taki problem: muszę pokolorować RichEdit po słowach kluczowych i między znakami specjalnymi w taki sposób że np słowo wpisane między znakami ' powinno podświetlać się na zielono..., wiem jak zrobić kolorowanie po słowach kluczowych, wiem jak zrobić kolorowanie pomiędzy dwoma znakami np: < i > ale jak zrobić kolorowanie pomiędzy dwoma takimi samymi znakami ? (SYNEDIT odpada bo mam D 2006)
Mam taki kod:
function TmainForm.PozycjaToDlugosc(p:Tpoint): Integer;
var i:Integer;
begin
result:=1;
for i:=0 to p.Y-1 do
result:=result+Length(RichEdit.Lines[i])+2;
result:=result+p.x;
end;
procedure TmainForm.RichEditch(Keys: Char);
var x:Integer; s:char;
begin
x:=PozycjaToDlugosc(RichEdit.CaretPos);
If StartS>x then StartS:=StartS+1;
//s:= #39;
if Stop = false then
If Keys= '"' then
Begin
StartS:=x;
Stop := false;
end;
If Stop = true then
If (Keys='"') and (x>StartS) and (RichEdit.Text[StartS]='"' ) then
begin
RichEdit.SelStart:=StartS;
RichEdit.SelLength:=x-StartS-1;
RichEdit.SelAttributes.Color:=clRed;
RichEdit.SelStart:=x;
RichEdit.SelLength:=0;
RichEdit.SelAttributes.Color:=clBlack;
//StartS := StartS + 1;
end;
Stop := true;
end;
Generalnie ten kod działa tylko w jednym tagu, kiedy napiszę jeszcze raz słowo między znakami " " to podświetla mi się od poprzedniego tag-u aż do obecnego...