PDFium Delphi Component Docs

Callbacks ของ form host

Component: TPdf  ·  Unit: PDFium
เชื่อมการโต้ตอบฟอร์มของ PDFium เข้ากับพฤติกรรม navigation, URI, cursor, การเปลี่ยนค่า, หน้า และการเลือกข้อความของ host

Properties and events

property FormHostCallbacksComplete: Boolean; // read only

property FormSelectionRects: TPdfFormSelectionRects; // read only

procedure ClearFormSelectionRects;

property OnFormCursor: TPdfFormCursorEvent;

property OnFormValueChange: TPdfFormValueChangeEvent;

property OnFormUriAction: TPdfFormUriActionEvent;

property OnFormGoToAction: TPdfFormGoToActionEvent;

property OnFormSelectionRect: TPdfFormSelectionRectEvent;

Page ownership

JavaScript ของเอกสารสามารถร้องขอหน้าที่ view ใดยังไม่ได้เปิด ตัว form host จึงโหลดหน้านั้นแบบ lazy เก็บ handle หนึ่งชุดต่อหน้าที่ถูกร้องขอ ส่งการแจ้งเตือน page-open แบบ native และปล่อย handle ทุกตัวก่อนที่ form environment จะปิด

FormHostCallbacksComplete เป็น true หลังจาก form environment ติดตั้ง callback รุ่น version-1 ที่จำเป็นครบทุกตัวแล้ว

Navigation and URI actions

OnFormGoToAction รับเลขหน้าแบบเริ่มนับที่ 1, zoom mode แบบ native และสำเนาที่จำกัดขอบเขตของอาร์เรย์ตำแหน่งปลายทาง

หากปล่อยให้ GoTo ไม่ถูกจัดการ หน้าของ view ที่เป็นตัวเริ่มการโต้ตอบฟอร์มจะเปลี่ยนไป โดยในกรณีใช้แบบ headless จะอ้าง TPdf.PageNumber แทน host สามารถตั้ง Handled แล้วจัดการเลื่อนไปยังปลายทางหรือ zoom เองได้

OnFormUriAction รับค่า URI ทั้งแบบถอดรหัสแล้วและแบบดิบ พร้อม modifier ของคีย์บอร์ด สำหรับ action ทั้งของ AcroForm และ XFA โดยจะไม่เปิดอะไรออกภายนอกเอง นอกจาก host จะเลือกทำเอง

Cursor, changes, and selected rectangles

OnFormCursor รับทั้งค่า TPdfFormCursor ที่เสถียรและรหัส cursor แบบ native ดั้งเดิม ค่าที่เสถียรเป็นหนึ่งใน pfcUnknown, pfcArrow, pfcSizeNESW, pfcSizeNWSE, pfcVerticalBeam, pfcHorizontalBeam หรือ pfcHand หากปล่อยไม่จัดการ จะอัปเดตเฉพาะ view ที่เป็นตัวเริ่มการโต้ตอบฟอร์ม

OnFormValueChange ทำงานหลังจากทำให้ page cache ที่ derive มาใช้ไม่ได้ และรวมการแจ้งเตือนการเปลี่ยนแปลงที่ซ้อนกันให้เหลือครั้งเดียว

FormSelectionRects คืน snapshot ที่ผู้เรียกเป็นเจ้าของ มีสี่เหลี่ยมในหน่วยหน้าได้สูงสุด 4096 ชิ้นจากการเลือกข้อความฟอร์มแบบ native OnFormSelectionRect จะส่งสี่เหลี่ยมใหม่ทีละชิ้นออกมา และ ClearFormSelectionRects ล้างเรขาคณิตที่เก็บไว้

See Also

FormFieldInfo, FormFieldTypeAtPoint, TPdfView.FormFieldInfoAt