DispatchInputEvent

Formulaires, interaction, saisie

Description

TPDFlibFormSession

HitTest

Le dispatcher suit les widgets entrés et pressés si bien les actions d'annotation /E, /X, /D et /U suivent les règles d'ordre de déclencheurs du PDF

Une action de relâchement du pointeur et l'activation par défaut ne surviennent que si le bouton principal a été pressé sur un widget et relâché dans la même zone d'entrée ininterrompue

fiekPointerCancel efface la capture sans dispatcher /U et doit être envoyé quand l'hôte perd la capture du pointeur

La gestion du clavier inclut le parcours de focus Tab et Maj+Tab, Retour arrière et Suppr sûrs par graphèmes, le mouvement de sélection dirigée, le mouvement Haut et Bas conscient des lignes, Début et Fin, Entrée et Échap des champs de texte, l'activation de boutons et les raccourcis Contrôle ou Meta pour tout sélectionner, annuler et rétablir

fiekTextInput accepte une entrée WideString complète pour que les hôtes puissent transmettre du texte Unicode composé ou supplémentaire sans le réduire à des codes de touches de plateforme

Les deltas de molette verticale sont des pas logiques normalisés plutôt que des constantes du système d'exploitation ; les valeurs positives sélectionnent des éléments de choix antérieurs et les négatives des éléments postérieurs

Déclaration

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

Paramètres

InputEventType d'événement et champs requis par ce type
InputResultIssue du traitement plus l'état de focus, de survol, d'appui, de valeur et de sélection qui en résulte

Champs d'événement

Déplacement, appui, relâchement et double-clic du pointeurRenseignez Page, X et Y ; l'appui et le relâchement renseignent aussi Button
Sortie et annulation du pointeurAucune coordonnée n'est requise
MoletteRenseignez Page, X, Y et WheelDeltaX ou WheelDeltaY normalisés
Touche enfoncée et touche relâchéeRenseignez Key et les Modifiers actifs
Saisie de texteRenseignez Text avec le texte composé à insérer ou à remplacer

Valeur de retour

Renvoie 1 lorsque la structure d'événement est valide et acceptée pour distribution, y compris les événements qui restent délibérément non traités afin que l'hôte puisse appliquer son propre repli Renvoie

0 pour un événement invalide, des coordonnées de pointeur invalides, une session détachée ou une distribution d'entrée récursive Utilisez

InputResult.Handled pour décider si le repli de l'hôte reste nécessaire

Exemple

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;

Voir aussi

TPDFlibFormInputEvent, TPDFlibFormInputResult, TPDFlibFormSession, HitTest, FocusNext