DispatchInputEvent
Skjemaer, interaksjon, inndata
Beskrivelse
Sender én GUI-rammeverk-nøytral peker-, hjul-, tastatur- eller tekstinndata-hendelse gjennom nåvæende TPDFlibFormSession
Pekerekoordinater bruker det samme roterte visuelle CropBox-koordinatsystemet som HitTest, med origo ved visuell øvre venstre
Utsenderen sporer Widgets som er gått inn i og trykket, slik at annoteringshandlingene /E, /X, /D og /U følger PDF-utløser-rekkeførereglene
En peker-opphandling og standard aktivering skjer bare når hovedknappen ble trykket på en Widget og sluppet innenfor det samme uavbrutte inngangsområdet
fiekPointerCancel rydder fangst uten å sende /U, og bør sendes når verten mister pointer-fangst
Tastaturhåndtering inkluderer Tab- og Shift+Tab-fokustraversering, grafemtrygg Backspace og Delete, retningsbestemt utvalsbevegelse, linjebevisst Opp- og Ned-bevegelse, Home og End, tekstfelt Enter og Escape, knappaktivering og Control- eller Meta-snarveier for velg alt, angre og gjør igjen
fiekTextInput aksepterer komplette WideString-inndata slik at verter kan videresende satt eller supplert Unicode-tekst uten å redusere den til plattformtastekoder
Vertikale hjuldeltaer normaliseres til logiske steg snarere enn operativsystemkonstanter; positive verdier velger tidligere valgalternativer og negative verdier senere alternativer
Deklarasjon
function DispatchInputEvent(
const InputEvent: TPDFlibFormInputEvent;
out InputResult: TPDFlibFormInputResult): Integer;
Parametere
| InputEvent | Hendelsestype og feltene denne typen krever |
|---|---|
| InputResult | Utfall av håndteringen pluss den resulterende tilstanden for fokus, berøring, trykk, verdi og markering |
Hendelsesfelt
| Pointer move, down, up and double-click | Sett Page, X og Y; ned og opp setter også Button |
|---|---|
| Pointer leave and cancel | Ingen koordinater kreves |
| Wheel | Sett Page, X, Y og normalisert WheelDeltaX eller WheelDeltaY |
| Key down and key up | Sett Key og eventuelle aktive Modifiers |
| Text input | Sett Text til den satte teksten som skal settes inn eller erstatte |
Returverdi
Returnerer 1 når hendelsesstrukturen er gyldig og godtatt for utsendelse, inkludert hendelser som bevisst forblir ubehandlet slik at verten kan bruke sin egen reserveløsning
Returnerer
0 ved ugyldig hendelse, ugyldige pekerkoordinater, en frakoblet økt eller rekursiv inndatasending
Bruk
InputResult.Handled til å avgjøre om vertens reserveløsning fortsatt trengs
Eksempel
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;
Se også
TPDFlibFormInputEvent, TPDFlibFormInputResult, TPDFlibFormSession, HitTest, FocusNext