DispatchInputEvent
Formuláře, interakce, vstup
Popis
Odešle jednu událost ukazatele, kolečka, klávesnice nebo textového vstupu neutrální k GUI frameworku přes aktuální TPDFlibFormSession
Souřadnice ukazatele používají stejný otočený vizuální souřadný systém CropBox jako HitTest, s původem vlevo nahoře vizuálně
Uřizovač sleduje vstoupené a stisknuté widgety, takže akce anotací /E, /X, /D a /U sledují pravidla pořadí spouštěčů PDF
Akce uvolnění tlačítka a výchozí aktivace nastanou jen tehdy, když bylo na widgetu stisknuto hlavní tlačítko a uvolněno uvnitř stejného nepřerušeného vstupního prostoru
fiekPointerCancel zruší zachycení bez odeslání /U a měl by se poslat, když hostitel ztratí zachycení ukazatele
Ovládání klávesnice zahrnuje procházení focusu Tab a Shift+Tab, Backspace a Delete bezpečné pro grafémy, směrový pohyb výběru, pohyb Up a Down vědomý si řádků, Home a End, Enter a Escape textových polí, aktivaci tlačítek a zkratky Control či Meta pro vybrat vše, krok zpět a krok vpřed
fiekTextInput přijímá kompletní vstup WideString, takže hostitelé mohou předávat složený nebo doplňkový text Unicode, aniž by jej redukovali na klávesové kódy platformy
Svislé delty kolečka jsou normalizované logické kroky, nikoli konstanty operačního systému; pozitivní hodnoty volí dřívější volby a negativní pozdější volby
Deklarace
function DispatchInputEvent(
const InputEvent: TPDFlibFormInputEvent;
out InputResult: TPDFlibFormInputResult): Integer;
Parametry
| InputEvent | Druh události a pole vyžadovaná tímto druhem |
|---|---|
| InputResult | Výsledek zpracování spolu s výsledným stavem fokusu, najetí, stisku, hodnoty a výběru |
Pole události
| Pointer move, down, up and double-click | Nastavte Page, X a Y; down a up nastavují také Button |
|---|---|
| Pointer leave and cancel | Nejsou vyžadovány žádné souřadnice |
| Wheel | Nastavte Page, X, Y a normalizované WheelDeltaX nebo WheelDeltaY |
| Key down and key up | Nastavte Key a jakékoli aktivní Modifiers |
| Text input | Nastavte Text na složený text, který se má vložit nebo nahradit |
Návratová hodnota
Vrací 1, když je struktura události platná a přijata k odeslání, včetně událostí záměrně ponechaných nezpracovaných, aby hostitel mohl použít vlastní fallback
Vrací
0 pro neplatnou událost, neplatné souřadnice ukazatele, odpojenou relaci nebo rekurzivní odeslání vstupu
Přes
InputResult.Handled rozhodnete, zda je hostitelský fallback stále potřeba
Příklad
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;
Viz také
TPDFlibFormInputEvent, TPDFlibFormInputResult, TPDFlibFormSession, HitTest, FocusNext