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

InputEventHendelsestype og feltene denne typen krever
InputResultUtfall av håndteringen pluss den resulterende tilstanden for fokus, berøring, trykk, verdi og markering

Hendelsesfelt

Pointer move, down, up and double-clickSett Page, X og Y; ned og opp setter også Button
Pointer leave and cancelIngen koordinater kreves
WheelSett Page, X, Y og normalisert WheelDeltaX eller WheelDeltaY
Key down and key upSett Key og eventuelle aktive Modifiers
Text inputSett 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