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 omDeklarationfunction DispatchInputEvent(
const InputEvent: TPDFlibFormInputEvent;
out InputResult: TPDFlibFormInputResult): Integer;
Parametrar
| InputEvent | Händelsetyp och de fält som den typen kräver |
|---|---|
| InputResult | Hanteringsresultat plus det resulterande tillståndet för fokus, hovring, nedtryckning, värde och markering |
Händelsefält
| Pekarförflyttning, nedtryckning, uppsläppning och dubbelklick | Sätt Page, X och Y; nedtryckning och uppsläppning sätter också Button |
|---|---|
| Pekarlämnande och annullering | Inga koordinater krävs |
| Hjul | Sätt Page, X, Y och normaliserad WheelDeltaX eller WheelDeltaY |
| Tangent ned och tangent upp | Sätt Key och eventuella aktiva Modifiers |
| Textinmatning | Sä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