function RectangleCount(StartIndex: Integer = 0; Count: Integer = MaxInt): Integer;
| StartIndex | Integer. Ölçülecek segmentteki ilk karakterin sıfır tabanlı indeksi. Varsayılan 0 |
| Count | Integer. StartIndex'ten başlayarak ölçüme dahil edilecek karakter sayısı. Varsayılan, sayfada kalan tüm karakterleri kapsayan MaxInt |
Rectangle[0] ile Rectangle[RectangleCount - 1] arasındaki indeksli property üzerinden erişilirRectangleCount, geçerli sayfada bitişik bir karakter run'ını birlikte kapsayan sınır dikdörtgenleri kümesini hesaplar. Aynı font ayarlarını paylaşan aynı satırdaki karakterler otomatik olarak tek bir dikdörtgende birleştirilir; böylece sonuç, metni vurgulamak için gereken örtüşmeyen en az sayıda kutuya iner
StartIndex ve Count parametreleri ölçülecek karakter segmentini tanımlar. Tipik kullanım; bir arama sonucu için vurgulama dikdörtgenleri elde etmek üzere FindFirst veya FindNext'in döndürdüğü eşleşme indeksini StartIndex olarak, arama stringinin uzunluğunu da Count olarak geçmektir
Döndürülen dikdörtgenler dahili bir tamponda saklanır ve bir sonraki RectangleCount çağrısına kadar geçerli kalır. Her dikdörtgeni, 0 ile RectangleCount - 1 aralığındaki Index için Rectangle[Index] property'sini okuyarak alın. Tüm koordinatlar PDF user-space birimlerindedir (point, başlangıç noktası sol altta)
Sayfadaki tüm karakterlerin sade bir sayısı için CharacterCount'u; belirli bir karakterin sayfada nerede durduğunu bulmak için CharacterIndexAtPos'u kullanın
var
MatchIdx, RCount, I: Integer;
Rect: TPdfRectangle;
begin
Pdf1.PageIndex := 0;
MatchIdx := Pdf1.FindFirst('PDFium');
if MatchIdx >= 0 then
begin
RCount := Pdf1.RectangleCount(MatchIdx, Length('PDFium'));
for I := 0 to RCount - 1 do
begin
Rect := Pdf1.Rectangle[I];
// Draw a highlight box using Rect.Left/Top/Right/Bottom
Memo1.Lines.Add(Format('Rect %d: (%.1f, %.1f, %.1f, %.1f)',
[I, Rect.Left, Rect.Bottom, Rect.Right, Rect.Top]));
end;
end;
end;