Kolorowanie RichEdit

0

zacznijmy od tego że używałem wyszukiwarki 4p oraz przeszukałem całe FAQ, w którym znalazłem tylko jedną odpowiedź, która nie była zbyt trafna.

więc pytanie brzmi tak : Jak ręcznie w RichEdicie pokolorować lub pogrubić jakieś słowa kluczowe??

0

Co to znaczy "recznie" ? Jesli chcesz dodac do richedit jakis tekst w okreslonym kolorze i pogrubiony to na przyklad tak:

  richedit1.SelAttributes.Color := clBlack;
  richedit1.SelAttributes.Style := [fsBold];
  richedit1.Lines.Add('');
  richedit1.SelText := 'jakis tekst';
0

Chodziło mi zeby najpierw znaleŹć a później pokolorować np. tagi html, wiem, trochę niedokładnie zadałem pytanie. A ręcznie czyli bez pomocy zadnych komponentów jak XRichEdit czy SynEdit

0

Ponizszy przyklad wyszukuje slowo "Tekst" i zaznacza go na czerwono

procedure TForm1.Button1Click(Sender: TObject);
var
  FoundAt: LongInt;
  StartPos, ToEnd: Integer;
begin
  repeat
    with RichEdit1 do
    begin
      if SelLength <> 0 then
       StartPos := SelStart + SelLength
      else
       StartPos := 0;
      ToEnd := Length(Text) - StartPos;
      FoundAt := FindText('Tekst', StartPos, ToEnd, [stMatchCase]);
      if FoundAt <> -1 then
      begin
        SetFocus;
        SelStart := FoundAt;
        SelLength := Length('Tekst');
        richedit1.SelAttributes.Color := clRed;
      end;
    end;
    application.ProcessMessages;
  until FoundAt = -1;
  richedit1.SelStart := 0;
  richedit1.SelLength := 0;
end;
0

Wielkie dzięki, ale umieszczając ten kod w OnChange richedit zrobił się jakiś dziki, jeszcze nad tym popracuję...

0

Raczej marne bedą rezultaty - przy dłuższym tekście będzie mulił jak word na wolnym komputerze - mówie tylko, żebyś się niepotrzebnie nie trudził. Live is brutal...

0

Jeśli chodzi o spowolnienie... Może by kolorować tylko aktualnie zmienianą linijkę? W takiej sytuacji na tagi HTML na przykład by wystarczyło (nie pisze się chyba tagów w kilku linijkach), a zachowałoby sporo mocy obliczeniowej (nie kolorowałoby każdego taga od początku po wpisaniu jednej literki - ile to by trwało, gdyby w dużym źródle trzeba było dopisać choćby jedną linijkę?). Nie studiowałem dokładnie tego kodu powyrzej, tylko przejrzałem, więc nie będę pisał co trzebaby zmienić.

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