DispatchInputEvent
Formularer, interaktion, input
Beskrivelse
TPDFlibFormSession
HitTest
/E
Pegerkoordinater bruger det samme roterede visuelle CropBox-koordinatsystem som /X, med origo ved det visuelle øverste venstre hjørne
Dispatcheren holder styr på indtrådte og nedtrykte widgets, så annotationshandlingerne /D, /U,
fiekPointerCancel og /U følger PDF'ens regler for udløserrækkefølge
En peger-op-handling og standardaktivering sker kun, når den primære knap blev trykket ned på en widget og sluppet inde i det samme uafbrudte indtrædningsområde
fiekTextInput rydder indfangning uden at sende WideString og bør sendes, når værten mister pegerindfangningen
Tastaturhåndtering omfatter Tab- og Shift+Tab-fokustraversering, grafemsikker Backspace og Delete, retningsbestemt markeringsflytning, linjebevidst op- og nedflytning, Home og End, Enter og Escape i tekstfelter, knapaktivering og Control- eller Meta-genveje til markér alt, fortryd og genskab
Deklaration
function DispatchInputEvent(
const InputEvent: TPDFlibFormInputEvent;
out InputResult: TPDFlibFormInputResult): Integer;
Parametre
| InputEvent | Hændelsestype og de felter, som denne type kræver |
|---|---|
| InputResult | Udfaldet af håndteringen plus den resulterende tilstand for fokus, hover, tryk, værdi og markering |
Hændelsesfelter
| Peger flyt, ned, op og dobbeltklik | Sæt Page, X og Y; down og up sætter også Button |
|---|---|
| Peger forlader og annullerer | Der kræves ingen koordinater |
| Hjul | Sæt Page, X, Y og normaliseret WheelDeltaX eller WheelDeltaY |
| Tast ned og tast op | Sæt Key og eventuelle aktive Modifiers |
| Tekstinput | Sæt Text til den sammensatte tekst, der skal indsættes eller erstatte |
Returværdi
Returnerer 1, når hændelsesstrukturen er gyldig og accepteret til afsendelse, inklusive hændelser, der bevidst forbliver ubehandlet, så værten kan anvende sin egen fallback
Returnerer
0 ved en ugyldig hændelse, ugyldige pegerkoordinater, en frakoblet session eller rekursiv inputafsendelse
Brug
InputResult.Handled til at afgøre, om værts-fallback stadig er påkrævet
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