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 predeterminada ocurren solo cuando el botón principal se presionó 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 host 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 hosts 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, hover, presión, valor y selección

Campos del evento

Movimiento, presión, liberación y doble clic del punteroEstablezca Page, X y Y; la presión y la liberación también establecen Button
Salida y cancelación del punteroNo se requieren coordenadas
RuedaEstablezca Page, X, Y y WheelDeltaX o WheelDeltaY normalizados
Tecla presionada y tecla liberadaEstablezca Key y cualquier Modifiers activo
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 despacho, incluidos los eventos que deliberadamente permanecen sin manejar para que el host pueda aplicar su propia alternativa Devuelve

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

InputResult.Handled para decidir si aún se requiere una alternativa del host

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