DispatchInputEvent

Formularios, interacción, entrada

Descripción

TPDFlibFormSession

HitTest

El despachador rastrea los widgets entrados y pulsados para que las acciones de anotación /E, /X, /D y /U sigan las reglas de orden de disparadores de PDF

Una acción de soltar el puntero y la activación por defecto ocurren solo cuando el botón principal se pulsó sobre un widget y se soltó dentro de la misma área de entrada ininterrumpida

fiekPointerCancel limpia la captura sin despachar /U y debe enviarse cuando el anfitrión pierde la captura del puntero

El manejo del teclado incluye el recorrido de foco Tab y Shift+Tab, Retroceso y Suprimir seguros por grafemas, movimiento de selección dirigida, movimiento de Arriba y Abajo consciente de líneas, Inicio y Fin, Enter y Escape de campos de texto, activación de botones y atajos de Control o Meta para seleccionar todo, deshacer y rehacer

fiekTextInput acepta entrada WideString completa para que los anfitriones puedan reenviar texto Unicode compuesto o suplementario sin reducirlo a códigos de tecla de plataforma

Los deltas de la rueda vertical son pasos lógicos normalizados, no constantes del sistema operativo; los valores positivos seleccionan elementos de elección anteriores y los negativos seleccionan elementos posteriores

Declaración

function DispatchInputEvent(
  const InputEvent: TPDFlibFormInputEvent;
  out InputResult: TPDFlibFormInputResult): Integer;

Parámetros

InputEventTipo de evento y los campos requeridos por ese tipo
InputResultResultado del manejo más el estado resultante de foco, de paso del puntero, de pulsación, de valor y de selección

Campos del evento

Movimiento, pulsación, soltado y doble clic del punteroEstablezca Page, X e Y; la pulsación y el soltado establecen también Button
Salida y cancelación del punteroNo se requieren coordenadas
RuedaEstablezca Page, X, Y y WheelDeltaX o WheelDeltaY normalizados
Pulsación y soltado de teclaEstablezca Key y los Modifiers activos
Entrada de textoEstablezca Text con el texto compuesto a insertar o reemplazar

Valor devuelto

Devuelve 1 cuando la estructura del evento es válida y se acepta para su despacho, incluidos los eventos que deliberadamente quedan sin manejar para que el anfitrión aplique su propia reserva Devuelve

0 para un evento no válido, coordenadas de puntero no válidas, una sesión desvinculada o un despacho de entrada recursivo Utilice

InputResult.Handled para decidir si todavía se necesita la reserva del anfitrión

Ejemplo

var
  InputEvent: TPDFlibFormInputEvent;
  InputResult: TPDFlibFormInputResult;
begin
  InputEvent.Kind := fiekPointerDown;
  InputEvent.Page := PageNumber;
  InputEvent.X := PageX;
  InputEvent.Y := PageY;
  InputEvent.Button := fibPrimary;
  InputEvent.Modifiers := [fimShift];
  Session.DispatchInputEvent(InputEvent, InputResult);

  InputEvent.Kind := fiekTextInput;
  InputEvent.Text := ComposedText;
  Session.DispatchInputEvent(InputEvent, InputResult);
end;

Véase también

TPDFlibFormInputEvent, TPDFlibFormInputResult, TPDFlibFormSession, HitTest, FocusNext