Подсветить HTML теги в RichEdit

Previous  Top  Next

    
 

 

Code:

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;

 

 

©Drkb::01014

http://delphiworld.narod.ru/

DelphiWorld 6.0