Dałem Find Dialog i takie oto polecenie:
begin
FindDialog1.Position := Point(nota.left+100, nota.top+200);
FindDialog1.Execute;
end;
procedure TNotatnik.FindDialog1Find(Sender: TObject);
var
FoundAt: LongInt;
StartPos, ToEnd: integer;
begin
with nota do
begin
if SelLength <> 0 then
StartPos := SelStart + SelLength
else
StartPos := 0;
ToEnd := Length(Text) - StartPos;
FoundAt := FindText(FindDialog1.FindText, StartPos, ToEnd, [stMatchCase]);
if FoundAt <> -1 then
begin
SetFocus;
SelStart := FoundAt;
SelLength := Length(FindDialog1.FindText);
end;
end;
end;
Jest to standartowe polecenie z Helpa - ale nie działają w nim różne opcje (np. wyszukiwanie w górę czy w dół) - działa tylko podstawowe wyszukiwanie. Jak poprawić ten błąd - czy jest jakiś lepszy algorytm do Find dialog - wykorzystujący jego wszystkie opcje?