function LinkZOrderAtPoint(X, Y: Double): Integer;
| X, Y | Double. Punkt in PDF-Seiteneinheiten, mit dem Ursprung an der unteren linken Ecke der Seite |
| Result | Integer. Die Z-Ordnung des den Punkt abdeckenden Links laut dem nativen Treffertest oder -1, wenn kein Link ihn abdeckt |
Ergänzung zu LinkAtPoint: Statt einer schlichten Ja/Nein-Antwort liefert der native Treffertest (FPDFLink_GetLinkZOrderAtPoint) die Z-Ordnung des an der Koordinate gefundenen Links. Überlappen sich mehrere Links, identifiziert die Z-Ordnung, auf welchen der Viewer an dieser Position reagieren sollte
Der Test läuft innerhalb von PDFium, sodass er die tatsächliche Quad-Punkt-Geometrie der Link-Anmerkungen berücksichtigt und nicht die von LinkAnnotation aufgedeckten Begrenzungsboxen — ein Link, der umgebrochenem Text folgt, wird an seiner echten Form erkannt
Ein Ergebnis von -1 bedeutet, dass der Punkt auf keinem Link liegt. Der Aufruf setzt voraus, dass die aktuelle Seite aktiv ist. Wandeln Sie eine Mausposition vorher mit DeviceToPage in Seiteneinheiten um
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;