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
| InputEvent | Type d'événement et champs requis par ce type |
|---|---|
| InputResult | Issue 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 pointeur | Renseignez Page, X et Y ; l'appui et le relâchement renseignent aussi Button |
|---|---|
| Sortie et annulation du pointeur | Aucune coordonnée n'est requise |
| Molette | Renseignez Page, X, Y et WheelDeltaX ou WheelDeltaY normalisés |
| Touche enfoncée et touche relâchée | Renseignez Key et les Modifiers actifs |
| Saisie de texte | Renseignez 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