DispatchInputEvent
Moduli, interazione, input
Descrizione
TPDFlibFormSession
HitTest
Il dispatcher traccia i widget entrati e premuti così le azioni di annotazione /E, /X, /D e /U seguono le regole di ordine dei trigger del PDF
Un'azione di rilascio del puntatore e l'attivazione predefinita avvengono solo quando il pulsante principale è stato premuto su un widget e rilasciato dentro la stessa area di ingresso ininterrotta
fiekPointerCancel pulisce la cattura senza dispedere /U e va inviato quando l'host perde la cattura del puntatore
La gestione della tastiera include il percorso di focus Tab e Maiusc+Tab, Backspace e Canc sicuri per grafemi, il movimento di selezione direzionata, il movimento Su e Giù consapevole delle righe, Home ed End, Enter ed Escape dei campi di testo, l'attivazione dei pulsanti e le scorciatoie Control o Meta per selezionare tutto, undo e redo
fiekTextInput accetta input WideString completo così gli host possono inoltrare testo Unicode composto o supplementare senza ridurlo a codici di tasti di piattaforma
I delta della rotella verticale sono passi logici normalizzati piuttosto che costanti del sistema operativo; i valori positivi selezionano elementi di scelta precedenti e i negativi elementi successivi
Dichiarazione
function DispatchInputEvent(
const InputEvent: TPDFlibFormInputEvent;
out InputResult: TPDFlibFormInputResult): Integer;
Parametri
| InputEvent | Tipo di evento e campi richiesti da quel tipo |
|---|---|
| InputResult | Esito della gestione più lo stato risultante di focus, hover, pressione, valore e selezione |
Campi dell'evento
| Spostamento, pressione, rilascio e doppio clic del puntatore | Impostare Page, X e Y; pressione e rilascio impostano anche Button |
|---|---|
| Uscita e annullamento del puntatore | Non è richiesta alcuna coordinata |
| Rotella | Impostare Page, X, Y e WheelDeltaX o WheelDeltaY normalizzati |
| Pressione e rilascio dei tasti | Impostare Key ed eventuali Modifiers attivi |
| Input di testo | Impostare Text al testo composto da inserire o sostituire |
Valore restituito
Restituisce 1 quando la struttura dell'evento è valida e viene accettata per l'invio, inclusi gli eventi che restano deliberatamente non gestiti perché l'host possa applicare il proprio fallback
Restituisce
0 per un evento non valido, coordinate del puntatore non valide, una sessione scollegata o un invio di input ricorsivo
Usare
InputResult.Handled per decidere se è ancora necessario il fallback dell'host
Esempio
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;
Vedere anche
TPDFlibFormInputEvent, TPDFlibFormInputResult, TPDFlibFormSession, HitTest, FocusNext