function LinkZOrderAtPoint(X, Y: Double): Integer;
| X, Y | Double. Punto in unità di pagina PDF, con l'origine nell'angolo in basso a sinistra della pagina |
| Result | Integer. Lo z-order del collegamento che copre il punto come riportato dall'hit-test nativo, oppure -1 quando nessun collegamento lo copre |
Complemento di LinkAtPoint: invece di una semplice risposta sì/no, l'hit-test nativo (FPDFLink_GetLinkZOrderAtPoint) restituisce lo z-order del collegamento trovato alla coordinata. Quando più collegamenti si sovrappongono, lo z-order identifica su quale il visualizzatore deve intervenire in quella posizione
Il test viene eseguito all'interno di PDFium, quindi onora la reale geometria a quad point delle annotazioni di collegamento anziché i bounding box esposti da LinkAnnotation — un collegamento che segue testo con a-capo viene confrontato sulla sua forma reale
Un risultato di -1 significa che il punto non giace su alcun collegamento. La chiamata richiede che la pagina corrente sia attiva. Convertire prima la posizione del mouse in unità di pagina con DeviceToPage
var PX, PY: Double;
begin
if Pdf1.DeviceToPage(MouseX, MouseY, 0, 0, W, H, ro0, PX, PY) then
begin
Memo1.Lines.Add('Link z-order: ' + IntToStr(Pdf1.LinkZOrderAtPoint(PX, PY)));
// -1 means the point is not covered by any link
end;
end;