PDFium Delphi Component Docs

LinkZOrderAt متد

کامپوننت: TPdfView  ·  واحد: PDFium
ترتیب چیدمان بالاترین حاشیه‌نویسی لینک برخوردکرده در پیکسل (X, Y) نمایشگر را برمی‌گرداند، یا 1-

Syntax

function LinkZOrderAt(X, Y: Integer): Integer;

Parameters

X, YInteger. مختصات پیکسلی نسبت به کنترل بیننده؛ همان مختصاتی که رخدادهای ماوس می‌گیرند

Return Value

Integer. ترتیب z لینک در نقطهٔ تست‌شده، یا 1- وقتی هیچ لینکی برخورد نکرده یا تست نمی‌تواند اجرا شود

Description

یک پیکسل صفحه‌نمایش را با حاشیه‌نویسی‌های لینک نیتیو صفحهٔ فعلی hit-test می‌کند و موقعیت چیدمانی بالاترین‌شان را گزارش می‌دهد. بیننده (X, Y) را با DeviceToPage — با رعایت Zoom، Rotation، حالت نمایش، padding صفحه و آفست اسکرول — به مختصات فضای صفحه تبدیل می‌کند و سپس FPDFLink_GetLinkZOrderAtPoint را روی دستهٔ صفحه صدا می‌زند؛ همان تست نقطه‌ای نیتیوی که LinkAnnotationAtPos به کار می‌برد

مقدار بازگشتی بزرگ‌تر یعنی لینک نزدیک‌تر به بیننده چیده شده، یعنی روی لینک‌هایی با مقادیر کوچک‌تر رسم شده. z-order اینجا ترتیب hit-test بالاترینِ پشتهٔ حاشیه‌نویسی است، نه اندیس لینک؛ پس مقادیر را اعداد مقایسه‌ای غیرشفاف ببینید

این تست مستقیماً از صفحه می‌پرسد و به محیط فرم نیازی ندارد؛ پس حتی وقتی سند AcroFormی ندارد هم کار می‌کند و با AllowFormEvents هم گره نخورده است. جایی که لینک و ویجت فرم هم‌پوشانی دارند، این نتیجه را با FormFieldZOrderAt مقایسه کنید: مقدار بزرگ‌تر مشخص می‌کند PDFium کدام حاشیه‌نویسی را در آن پیکسل برخوردکرده می‌داند

همتای TPdf یعنی TPdf.LinkZOrderAtPoint(X, Y: Double) همین تابع PDFium را می‌پیچد. آن‌یک مختصات فضای صفحه را مستقیماً به‌صورت Double می‌گیرد و وقتی صفحه‌ای فعال نباشد استثنا برمی‌انگیزد، در حالی که پیچندهٔ TPdfView نرم شکست می‌خورد و 1- برمی‌گرداند

Remarks

Example

procedure TForm1.PdfView1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
var
  FieldZ, LinkZ: Integer;
begin
  FieldZ := PdfView1.FormFieldZOrderAt(X, Y);
  LinkZ := PdfView1.LinkZOrderAt(X, Y);
  if (LinkZ >= 0) and (LinkZ > FieldZ) then
    Caption := 'link wins the hit';
end;

See Also

FormFieldZOrderAt, LinkAnnotationAtPos, WebLinkAtPos, DeviceToPage