Kolorowanie tagów HTML-a

0

Witam,

Znalazłem taki oto gotowiec: http://4programmers.net/Delphi/Gotowce/Tagi_HTML
Jednak usuwa on tagi HTML, a ja chciałbym aby zaznaczał je różnymi kolorami. Np. wklejam do notatnika kod html a jego tagi <ort>Od razu </ort>są koloryzowane. Zna ktoś może taki komponent albo jakis gotowiec ? Od trzech dni szukam i nic.

0

Wykombinowałem tylko coś takiego, ale działa fatalnie bo jak coś chcesz dopisać po słowie, które ma
zmieniony kolor to też piszesz na kolorowo. A poza tym świetnie googlujesz, jak przez 3 dni jakoś nie
mogłeś wpisać delphi kolorowanie składni i trafić na jedno z forów na którym polecają komponent do
tego i do htmla oraz innych o nazwie SynEdit http://synedit.sourceforge.net a mój kod to do niczego:

procedure TForm1.KolorujTagi;
var
  i : Integer;
  HTML : string;
  TagOpened : Boolean;
begin
  TagOpened := False;
  HTML := RichEdit1.Text;
  RichEdit1.SelLength := 0;
  for I := 1 to Length(HTML) do
  begin
    if HTML[i] = '<' then // jezeli znak to <...
    begin
      TagOpened := True; //... zmien wlasciwosc na true
      RichEdit1.SelStart := I - 1;
      continue; //...nie rob juz nic
    end
    else if (HTML[i] = '>') then //..jezeli znak to >
    begin
      TagOpened := False; //...wylacz wlasciwosc
      continue;
    end
    else
    begin
      RichEdit1.SelLength :=  RichEdit1.SelLength + 1;
      if not TagOpened then
      begin
        RichEdit1.Font.Color := RichEdit1.Font.Color;
        RichEdit1.SelAttributes.Color := clRed;
      end;
    end;
  end;
end;
0

Po pierwsze: "Kolorowanie", a nie "Koloryzowanie" [glowa]
Po drugie, jak już Olesio napisał: TSynEdit.

0

sciagłem tego SynEdit-a ale jak go teraz zainstalować i użyć ?</ort>

0
Bomvoq napisał(a)

sciagłem tego SynEdit-a ale jak go teraz zainstalować i użyć ?</ort>

Też nie wiedziałem na początku. Ale nie zawracałem tym żadnego forum. Przeczytałem install.txt, czy readme.txt i popatrzyłem na komponenty, jakie są w zestawie :/ I co? Udało się.

0

Zainstalować tak jak każdy komponent. Są odpowiednie paczki w podkatalogu Packages. A jak nie masz w
ogóle możliwości instalacji komponentów albo chcesz używać je dynamicznie. To dla kolorowania składni w
htmlu potrzebujesz komponentu SynMemo, do którego kompilacji potrzebne są nastepujące pliki z \source:

SynEdit.inc
SynEditHighlighter.pas
SynEditKbdHandler.pas
SynEditKeyCmds.pas
SynEditKeyConst.pas
SynEditMiscClasses.pas
SynEditMiscProcs.pas
SynEditStrConst.pas
SynEditTextBuffer.pas
SynEditTypes.pas
SynEditWordWrap.pas
SynHighlighterHtml.pas
SynMemo.pas
SynRegExpr.pas
SynTextDrawer.pas
SynEdit.res

Następnie do sekcji uses dodajesz SynMemo, SynHighlighterHtml, a resztę załatwi poniższy kod, to tyle co
na szybko ustaliłem, bo więcej się tym komponentem nie bawiłem. Ale z moich testów wynika, że składnia
jest poprawnie zaznaczana. Więcej własności mozesz ustawić dla tego komponentu ręcznie, o ile go sobie
umieścisz na formatce po zainstalowaniu. Lub jeżeli go utworzyłeś dynamicznie, to poprzez dopisanie kodu.

var
  SM : TSynMemo;
  HS : TSynHTMLSyn;
begin
  SM := TSynMemo.Create(Self);
  HS := TSynHTMLSyn.Create(Self);
  SM.Parent := Form1;
  SM.Highlighter := HS;;
end;

EDIT: już mnie Juhas ubiegł, ale ja nie czytałem żadnego readme, zresztą nie widzę w nim słowa "install", a
może Juhas ma skądś inną wersję. Ale właśnie zanim się pisze na forum trzeba chwilę samodzielnie coś na
pewno pokombinować, a nie z każdym banałem lecieć na forum i czekać na odpowiedź - ech te leniuchy :P

1 użytkowników online, w tym zalogowanych: 0, gości: 1