function FormFieldZOrderAtPoint(X, Y: Double): Integer;
| X, Y | Double. Ponto em unidades de página PDF, com a origem no canto inferior esquerdo da página. |
| Result | Integer. A ordem z do widget de campo de formulário que cobre o ponto, conforme relatado pelo teste de hit nativo, ou -1 quando nenhum widget o cobre. |
Contraparte para campos de formulário de LinkZOrderAtPoint. O teste de hit passa pelo ambiente de preenchimento de formulários (FPDFPage_FormFieldZOrderAtPoint) e retorna a ordem z do widget cuja área cobre a coordenada, de modo que widgets sobrepostos sejam resolvidos da mesma forma como o PDFium os resolve ao rotear a entrada do mouse
A chamada exige que o ambiente de preenchimento de formulários esteja inicializado para o documento; quando não está, um EPdfError com a mensagem Form fill environment is not initialized é disparado. A página atual também deve estar ativa
Para consultas tipadas use FormFieldTypeAtPoint, que também informa o tipo do campo, ou HasFormFieldAt para uma verificação de presença. Converta a posição do mouse em unidades de página com DeviceToPage antes de chamar
-1 significa que o ponto não está sobre nenhum widget, e não que a página não tem formulário.
var PX, PY: Double;
begin
if Pdf1.DeviceToPage(MouseX, MouseY, 0, 0, W, H, ro0, PX, PY) then
if Pdf1.FormFieldZOrderAtPoint(PX, PY) >= 0 then
Cursor := crIBeam; // a form widget is under the mouse
end;