function FindFirst(const Text: WString; Options: TSearchOptions = []; StartIndex: Integer = 0; DirectionUp: Boolean = True): Integer;
| Text | WString. Nykyiseltä sivulta haettava Unicode-tekstimerkkijono |
| Options | TSearchOptions. Joukko TSearchOption-lippuja, jotka ohjaavat täsmäyskäyttäytymistä. Tuetut liput ovat soMatchCase (kirjainkoon huomioiva täsmäys) ja soMatchWholeWord (vain kokonaisten sanojen täsmäys). Välitä [] kirjainkoosta riippumattomaan osamerkkijonohakuun |
| StartIndex | Integer. 0-pohjainen merkki-indeksi, josta haku alkaa. Välitä -1 aloittaaksesi sivun viimeisestä merkistä (hyödyllistä, kun DirectionUp on False). Oletusarvo on 0 |
| DirectionUp | Boolean. Määrittää alkuperäisen hakusuunnan. True (oletus) hakee StartIndex-kohdasta sivun loppua kohti; False hakee alkua kohti. Myöhemmät FindNext-kutsut siirtyvät aina eteenpäin; FindPrevious siirtyy aina taaksepäin |
-1, jos osumaa ei löydy. Sisäinen hakukahva säilytetään, jotta myöhemmät FindNext- tai FindPrevious-kutsut voivat jatkaa hakua ilman uudelleenalustustaFindFirst käynnistää kokotekstihaun tällä hetkellä ladatulla PDF-sivulla. Se hyväksyy Unicode-hakumerkkijonon sekä valinnaiset täsmäysliput, aloitusmerkkipaikan ja suuntavihjeen. Onnistuessaan se palauttaa ensimmäisen osuman 0-pohjaisen merkki-indeksin ja tallentaa sisäisen hakukahvan, jota myöhemmät FindNext- ja FindPrevious-kutsut käyttävät uudelleen. Palauttaa -1, kun tekstiä ei löydy
StartIndex-parametrilla haku voidaan aloittaa mistä tahansa merkkipaikasta sen sijaan, että se alkaisi aina sivun alusta. Välitä 0 (oletus) aloittaaksesi aivan ensimmäisestä merkistä, tai välitä -1 ankkuroidaksesi haun viimeiseen merkkiin — kätevää, kun teet käänteisen haun asetuksella DirectionUp = False
Käytä Options-parametria täsmäyskäyttäytymisen tarkentamiseen. soMatchCase ottaa käyttöön kirjainkoon huomioivan vertailun; soMatchWholeWord rajoittaa osumat vain kokonaisiin sanoihin. Molemmat liput voidaan yhdistää. Tyhjän joukon [] välittäminen tekee kirjainkoosta riippumattoman osamerkkijonohaun
Kun osuma on löytynyt, kutsu RectangleCount-metodia palautetulla indeksillä ja tunnetulla osuman pituudella hakeaksesi täsmänneen tekstin rajaavat suorakulmiot sivulla — hyödyllistä hakutulosten korostamiseen katselimessa
var
Idx, MatchLen, R, I: Integer;
Rect: TPdfRectangle;
begin
Pdf1.PageIndex := 0;
MatchLen := Length('invoice');
Idx := Pdf1.FindFirst('invoice', [], 0, True);
while Idx >= 0 do
begin
// Retrieve bounding rectangles for the matched text
R := Pdf1.RectangleCount(Idx, MatchLen);
for I := 0 to R - 1 do
begin
Rect := Pdf1.Rectangle[I];
Memo1.Lines.Add(Format('Match at char %d, rect [%.1f,%.1f,%.1f,%.1f]',
[Idx, Rect.Left, Rect.Top, Rect.Right, Rect.Bottom]));
end;
Idx := Pdf1.FindNext;
end;
end;