...HTML-Tags im TRichEdit farblich hervorheben?
Autor: Ronald Rethfeldt
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;
printed from
www.swissdelphicenter.ch
developers knowledge base