PDFium Delphi Component Docs

HasFormFieldAt 속성

컴포넌트: TPdf  ·  유닛: PDFium
지정한 페이지 좌표를 양식 필드 위젯이 덮고 있으면 True를 반환하는 히트 테스트입니다

Syntax

property HasFormFieldAt[X, Y: Single]: Boolean; // read only

Description

HasFormFieldAt은 현재 활성 페이지에서 히트 테스트를 수행합니다. 어떤 위젯 주석 사각형 안에 좌표가 들어가면 True를 반환하며, 지정한 (X, Y) 좌표는 PDF 사용자 공간 기준입니다 — PageWidth / PageHeight와 같은 좌표계를 사용하며, 원점은 왼쪽 아래이고 X는 오른쪽으로, Y는 위로 증가하고 단위는 포인트(1/72 inch)입니다

이 속성은 False를 반환합니다 — Active가 False이거나, 문서에 AcroForm 위젯이 없거나, 지정한 좌표가 모든 위젯 사각형을 벗어난 경우입니다. PDFium의 FPDFPage_HasFormFieldAtPoint를 래핑한 상수 시간 호출이며, 초당 여러 번 값을 조회하는 뷰어의 마우스 이동 / 호버 피드백에 적합합니다

이 히트 테스트는 위젯 사각형만 고려하며 외관 경계는 고려하지 않습니다. 보이는 글리프가 위젯 사각형보다 작은 누름 버튼이나 확인란도 사각형 전체에 대해 True를 보고합니다. 히트 테스트로 커서가 필드 위에 있는지 확인한 뒤 FormFieldInfoAt[X, Y]를 함께 사용해 일치한 필드의 레코드를 얻습니다. 이 패턴은 매 마우스 이동 이벤트마다 더 무거운 정보 조회를 수행하는 것을 피합니다

Remarks

Example

procedure TForm1.PdfView1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
var PageX, PageY: Double;
begin
  PdfView1.DeviceToPage(X, Y, PageX, PageY);
  if Pdf1.HasFormFieldAt[PageX, PageY] then
    PdfView1.Cursor := crHandPoint
  else
    PdfView1.Cursor := crDefault;
end;

See Also

FormFieldAt, FormFieldInfoAt, FormFieldCount, TPdfView.DeviceToPage