DispatchInputEvent

Formulär, interaktion, inmatning

Beskrivning

Skickar en pek-, hjul-, tangentbords- eller textinmatningshändelse oberoende av GUI-ramverk genom den aktuella TPDFlibFormSession

Pekarkoordinater använder samma roterade visuella CropBox-koordinatsystem som HitTest, med origo i det visuella övre vänstra hörnet

Skickaren håller reda på inträdda och nedtryckta widgetar så att annoteringarnas åtgärder /E, /X, /D och /U följer PDF:ens utlösningsordningsregler

En pointer-up-åtgärd och standardaktivering sker bara när primärknappen trycktes ned på en widget och släpptes upp inne i samma obrutna entered-område

fiekPointerCancel rensar upptagningen utan att skicka /U och bör skickas när värden tappar pekarens upptagning

Tangenthanteringen omfattar Tab- och Shift+Tab-fokusvandring, grafemsäker Backspace och Delete, riktad markeringsförflyttning, radmedveten Upp- och Ned-förflyttning, Home och End, Enter och Escape i textfält, knappaktivering samt Control- eller Meta-genvägar för markera allt, ångra och gör om

fiekTextInput tar emot komplet WideString-indata så att värdar kan vidarebefordra sammansatt eller kompletterande Unicode-text utan att reducera den till plattformens tangentkoder

Vertikala hjuldeltan är normaliserade logiska steg i stället för operativsystemskonstanter; positiva värden väljer tidigare valalternativ och negativa värden senare alternativ

Tangentbordshanteringen omfattar Tab- och Skift+Tab-fokusförflyttning, grafemsäkra Backspace och Delete, riktad markeringsförflyttning, radmedveten Upp- och Ned-rörelse, Home och End, Enter och Escape i textfält, knappaktivering samt Ctrl- eller Meta-genvägar för markera allt, ångra och gör omDeklaration

function DispatchInputEvent(
  const InputEvent: TPDFlibFormInputEvent;
  out InputResult: TPDFlibFormInputResult): Integer;

Parametrar

InputEventHändelsetyp och de fält som den typen kräver
InputResultHanteringsresultat plus det resulterande tillståndet för fokus, hovring, nedtryckning, värde och markering

Händelsefält

Pekarförflyttning, nedtryckning, uppsläppning och dubbelklickSätt Page, X och Y; nedtryckning och uppsläppning sätter också Button
Pekarlämnande och annulleringInga koordinater krävs
HjulSätt Page, X, Y och normaliserad WheelDeltaX eller WheelDeltaY
Tangent ned och tangent uppSätt Key och eventuella aktiva Modifiers
TextinmatningSätt Text till den sammansatta text som ska infogas eller ersättas

Returvärde

Returnerar 1 när händelsestrukturen är giltig och accepterad för utskick, inklusive händelser som medvetet lämnas ohanterade så att värden kan tillämpa sin egen reservhantering Returnerar

0 för en ogiltig händelse, ogiltiga pekarkoordinater, en frånkopplad session eller rekursiv inmatningsutskick Använd

InputResult.Handled för att avgöra om värdens reservhantering fortfarande krävs

Exempel

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 även

TPDFlibFormInputEvent, TPDFlibFormInputResult, TPDFlibFormSession, HitTest, FocusNext