Problem z szukaniem tekstu w Richedit

0

Witam! mam kilka problemów dotyczących szukania tekstu w Richedit, otóż mam taki kod:

function SearchForText_AndSelect(RichEdit: TRichEdit; SearchText: string): Boolean;
var
  StartPos, Position, Endpos: Integer;
begin
  StartPos := 0;
  with RichEdit do
  begin
    Endpos := Length(RichEdit.Text);
    Lines.BeginUpdate; 
    while FindText(SearchText, StartPos, Endpos, [stMatchCase])<>-1 do
    begin 
      Endpos   := Length(RichEdit.Text) - startpos;
      Position := FindText(SearchText, StartPos, Endpos, [stMatchCase]); 
      Inc(StartPos, Length(SearchText));
      SetFocus;
      SelStart  := Position;
      SelLength := Length(SearchText);
    end;
    Lines.EndUpdate;
  end;
end;


procedure TForm1.Button1Click(Sender: TObject);
begin
  SearchForText_AndSelect(RichEdit1, edit1.text);
end;

+ Wpisuję jakiś wyraz lub literkę do Edit i klikam na button, ale w Richedit pokazuje mi tylko ostatni szukany wyraz/literkę zamiast od początku listy lecieć i pokazując kolejne wyrazy (gdy klikamy na button). Co tu jest źle?

+ Czy można za pomocą jednego kliknięcia buttona za jednym zamachem wyszukać w Richedit wszystkie szukane wyrazy/litery a potem wynik (czyli wszystkie zaznaczone wyrazy) przedstawić osobno w drugim Richedit?

+ Gdy wpisuję wyraz np. 'ala' a w tekscie mam 'Ala' to mi nie wyszukuje. Jak napisac kod, aby rozróżniał początkowe literki?

Każda moja przeróbka kodu czy napisanie nowego kończyła się błędem w kompilacji, ale od czegoś w SPACJA końcu trzeba zacząć, pomimo, ze człowiek po jakimś czasie wysiada z siebie i kieruje się ostatecznie od ekspertów na 4p...
Za pomoc i WYROZUMIAŁOŚĆ z góry Wam dziękuję!!!</delphi>

0
  • Wpisuję jakiś wyraz lub literkę do Edit i klikam na button,

Szukasz w pętli while aż do końca tekstu, wiec nic dziwnego, że ci się pokazuje tylko ostatni wyraz. Poza tym po co to BeginUpdate i EndUpdate ??

  • Czy można za pomocą jednego kliknięcia buttona za jednym zamachem ...

Można, wtedy właśnie należałoby zastosowac pętle, ale niech ci sie nie wydaje, że można zaznaczyć w RichEdit dwa lub wiecej oddzielnych wyrazów :) . Zastanawiam się tylko po co wynik przedstawiać w oddzielnym edytorze, skoro będzie to powtarzająca sie lista tych samych, wyszukiwanych słów [???] .

  • Gdy wpisuję wyraz np. 'ala' a w tekscie mam 'Ala' to mi nie wyszukuje...

To proponuje przeanalizować sobie opis funkcji FindText RichEdita z Helpa.

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