Sources
Delphi Russian Knowledge Base
DRKB - это самая большая и удобная в использовании база знаний по Дельфи в рунете, составленная Виталием Невзоровым

Подсветить HTML-теги в TRichEdit

01.01.2007
procedure HTMLSyntax(RichEdit: TRichEdit; TextCol,
 
TagCol, DopCol: TColor);
var  
  i
, iDop: Integer;
  s
: string;
 
Col: TColor;
  isTag
, isDop: Boolean;
begin
  iDop
:= 0;
  isDop
:= False;
  isTag
:= False;
 
Col := TextCol;
 
RichEdit.SetFocus;
 
 
for i := 0 to Length(RichEdit.Text) do
 
begin
   
RichEdit.SelStart := i;
   
RichEdit.SelLength := 1;
    s
:= RichEdit.SelText;
 
   
if (s = '<') or (s = '{') then isTag := True;
 
   
if isTag then
     
if (s = '"') then
       
if not isDop then
       
begin
          iDop  
:= 1;
          isDop
:= True;
       
end  
       
else
          isDop
:= False;
 
   
if isTag then
     
if isDop then
     
begin
       
if iDop <> 1 then Col := DopCol;
     
end  
     
else
       
Col := TagCol
   
else
     
Col := TextCol;
 
   
RichEdit.SelAttributes.Color := Col;
 
    iDop
:= 0;
 
   
if (s = '>') or (s = '}') then isTag := False;
 
end;
 
 
RichEdit.SelLength := 0;
end;
 
procedure TForm1
.Button1Click(Sender: TObject);
begin
  RichEdit1
.Lines.BeginUpdate;
 
HTMLSyntax(RichEdit1, clBlue, clRed, clGreen);
  RichEdit1
.Lines.EndUpdate;
end;
 

https://delphiworld.narod.ru/

DelphiWorld 6.0