DispatchInputEvent
Formulieren, interactie, invoer
Beschrijving
Dispatcht één GUI-framework-neutraal pointer-, wielen-, toetsenbord- of tekstinvoerevent via de huidige TPDFlibFormSession
Pointercoördinaten gebruiken hetzelfde geroteerde visuele CropBox-coördinatensysteem als HitTest, met de oorsprong linksboven in de weergave
De dispatcher volgt binnen gekomen en ingedrukte Widgets zodat annotatieacties /E, /X, /D en /U de PDF-triggerordningsregels volgen
Een pointer-omhoog-actie en standaardactivering treden alleen op wanneer de primaire knop op een Widget is ingedrukt en binnen hetzelfde ononderbroken binnengekomen gebied wordt losgelaten
fiekPointerCancel wist de vangst zonder /U te dispatchen en moet worden verstuurd wanneer de host de pointervangst verliest
Toetsenbordafhandeling omvat Tab- en Shift+Tab-focusdoorkruising, grapheme-veilige Backspace en Delete, gerichte selectiebeweging, regekbewuste Omhoog- en Omlaag-beweging, Home en End, Enter en Escape in tekstvelden, knopactivering en Control- of Meta-sneltoetsen voor alles selecteren, ongedaan maken en opnieuw uitvoeren
fiekTextInput accepteert volledige WideString-invoer zodat hosts samengestelde of aanvullende Unicode-tekst kunnen doorsturen zonder haar te reduceren tot platformtoetscodes
Verticale wieldeltas zijn genormaliseerde logische stappen in plaats van constanten van het besturingssysteem; positieve waarden selecteren eerdere keuzeopties en negatieve waarden latere opties
Declaratie
function DispatchInputEvent(
const InputEvent: TPDFlibFormInputEvent;
out InputResult: TPDFlibFormInputResult): Integer;
Syntaxis
| InputEvent | Soort gebeurtenis en de velden die die soort vereist |
|---|---|
| InputResult | Uitkomst van de afhandeling plus de resulterende focus-, hover-, druk-, waarde- en selectietoestand |
Gebeurtenisvelden
| Pointer move, down, up en dubbelklik | Stel Page, X en Y in; down en up stellen ook Button in |
|---|---|
| Pointer leave en cancel | Er zijn geen coördinaten nodig |
| Wiel | Stel Page, X, Y en genormaliseerde WheelDeltaX of WheelDeltaY in |
| Key down en key up | Stel Key en eventuele actieve Modifiers in |
| Tekstinvoer | Stel Text in op de in te voegen of te vervangen samengestelde tekst |
Retourwaarde
Geeft 1 terug wanneer de gebeurtenisstructuur geldig is en voor verzending wordt geaccepteerd, inclusief gebeurtenissen die bewust onbehandeld blijven zodat de host zijn eigen fallback kan toepassen
Geeft
0 terug bij een ongeldige gebeurtenis, ongeldige pointercoördinaten, een losgemaakte sessie of recursieve invoerverzending
Gebruik
InputResult.Handled om te bepalen of host-fallback nog nodig is
Voorbeeld
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;
Zie ook
TPDFlibFormInputEvent, TPDFlibFormInputResult, TPDFlibFormSession, HitTest, FocusNext