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
| InputEvent | Tipo de evento y los campos requeridos por ese tipo |
|---|---|
| InputResult | Resultado 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 puntero | Establezca Page, X e Y; la pulsación y el soltado establecen también Button |
|---|---|
| Salida y cancelación del puntero | No se requieren coordenadas |
| Rueda | Establezca Page, X, Y y WheelDeltaX o WheelDeltaY normalizados |
| Pulsación y soltado de tecla | Establezca Key y los Modifiers activos |
| Entrada de texto | Establezca 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