Olá galera, nesta Quick Tips, irei mostra como formatar um RichEdit de acordo com as Tags HTML, veja como é simples implementar este feito. A lógica basicamente é que temos que localizar os caracteres “<”, “>”, “{”, “}”, localizando estes além de “ “ “ podemos formatar a parte do texto veja como é simples fazer este feito com a função FormatarHTML.

 

Mas antes vamos adicionar um BitBtn e um RichEdit.

 

unit uFrmPrincipal;

interface

uses

   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs,  StdCtrls,Buttons, ComCtrls;

type

   TFrmPrincipal = class(TForm)

   BitBtn1: TBitBtn;

   RichEdit1: TRichEdit;

   procedure BitBtn1Click(Sender: TObject);

   private

      procedure FormtarHTML(RichEdit: TRichEdit; xTextValue, xTag, DopCol: TColor);

      { Private declarations }

   public

      { Public declarations }

end;

var

   FrmPrincipal: TFrmPrincipal;

implementation

{$R *.dfm}

 

procedure TFrmPrincipal.FormtarHTML(RichEdit: TRichEdit; xTextValue, xTag,

DopCol: TColor);

var

   i, iDop: Integer;

   s: string;

   xCor: TColor;

   isTag, isDop: Boolean;

begin

   iDop := 0;

   isDop := False;

   isTag := False;

   xCor := xTextValue;

   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

         xCor := DopCol;

      end

      else

         xCor := xTag

   else

      xCor := xTextValue;

   RichEdit.SelAttributes.Color := xCor;

   iDop := 0;

   if (s = '>') or (s = '}') then

      isTag := False;

   end;

 

   RichEdit.SelLength := 0;

end;

 

end.

 

procedure TFrmPrincipal.BitBtn1Click(Sender: TObject);

begin

   RichEdit1.Lines.BeginUpdate;

   FormtarHTML(RichEdit1, clBlue, clRed, clGreen);

   RichEdit1.Lines.EndUpdate;

end;

 

 

Veja o Resultado apresentado quando informamos um código HTML e logo em seguida clicamos no BitBtn para formatar.

 


Vemos um exemplo de software que utiliza isso é o NotePad ++, um bloco de notas com muito mais recursos do que o normal do Windows

 

Fico por aqui ate à próxima Quick Tips.

 

Um abraço

 

 

Wesley Y