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??
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??
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';
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
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;
Wielkie dzięki, ale umieszczając ten kod w OnChange richedit zrobił się jakiś dziki, jeszcze nad tym popracuję...
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...
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ć.