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

InputEventSoort gebeurtenis en de velden die die soort vereist
InputResultUitkomst van de afhandeling plus de resulterende focus-, hover-, druk-, waarde- en selectietoestand

Gebeurtenisvelden

Pointer move, down, up en dubbelklikStel Page, X en Y in; down en up stellen ook Button in
Pointer leave en cancelEr zijn geen coördinaten nodig
WielStel Page, X, Y en genormaliseerde WheelDeltaX of WheelDeltaY in
Key down en key upStel Key en eventuele actieve Modifiers in
TekstinvoerStel 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