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

InputEventDruh události a pole vyžadovaná tímto druhem
InputResultVý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-clickNastavte Page, X a Y; down a up nastavují také Button
Pointer leave and cancelNejsou vyžadovány žádné souřadnice
WheelNastavte Page, X, Y a normalizované WheelDeltaX nebo WheelDeltaY
Key down and key upNastavte Key a jakékoli aktivní Modifiers
Text inputNastavte 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