quarta-feira, 12 de janeiro de 2011

Formatando tags HTML com o Delphi

Está dica ensina como formatar comandos em HTML dentro de um RichEdit.

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;

Volte ao formulário principal e no evento onclick do Button insira o seguinte código:
procedure TForm1.Button1Click(Sender: TObject);

begin
    RichEdit1.Lines.BeginUpdate;
    HTMLSyntax(RichEdit1, clBlue, clRed, clGreen);
    RichEdit1.Lines.EndUpdate;
end;

Nenhum comentário:

Postar um comentário