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
| InputEvent | Tipo de evento y los campos requeridos por ese tipo |
|---|---|
| InputResult | Resultado 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 puntero | Establezca Page, X y Y; la presión y la liberación también establecen Button |
|---|---|
| Salida y cancelación del puntero | No se requieren coordenadas |
| Rueda | Establezca Page, X, Y y WheelDeltaX o WheelDeltaY normalizados |
| Tecla presionada y tecla liberada | Establezca Key y cualquier Modifiers activo |
| 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 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