DispatchInputEvent

Formulare, Interaktion, Eingabe

Beschreibung

TPDFlibFormSession

HitTest

Der Dispatcher verfolgt betretene und gedrückte Widgets, sodass Anmerkungsaktionen /E, /X, /D und /U den PDF-Trigger-Reihenfolgeregeln folgen

Eine Pointer-up-Aktion und Standardaktivierung treten nur auf, wenn die primäre Taste auf einem Widget gedrückt und innerhalb desselben ununterbrochenen Betreten-Bereichs losgelassen wurde

fiekPointerCancel löscht die Erfassung, ohne /U zu versenden, und sollte gesendet werden, wenn der Host die Zeigererfassung verliert

Die Tastaturverarbeitung umfasst Tab- und Umschalt+Tab-Fokusdurchlauf, graphemsicheres Backspace und Delete, gerichtete Auswahlbewegung, zeilenbewusstes Auf- und Abbewegen, Home und End, Textfeld-Enter und Escape, Knopfaktivierung sowie Strg- oder Meta-Kürzel für alles auswählen, Undo und Redo

fiekTextInput akzeptiert vollständige WideString-Eingabe, sodass Hosts zusammengesetzten oder supplementären Unicode-Text weiterleiten können, ohne ihn auf Plattform-Tastencodes zu reduzieren

Vertikale Mausrad-Deltas sind normalisierte logische Schritte statt Betriebssystemkonstanten; positive Werte wählen frühere Auswahlelemente, negative Werte spätere Elemente

Deklaration

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

Parameter

InputEventEreignisart und die von dieser Art benötigten Felder
InputResultVerarbeitungsergebnis samt resultierendem Fokus-, Hover-, Druck-, Wert- und Auswahlzustand

Ereignisfelder

Zeiger bewegen, drücken, loslassen und DoppelklickPage, X und Y setzen; Drücken und Loslassen setzen zudem Button
Zeiger verlassen und abbrechenEs sind keine Koordinaten erforderlich
MausradPage, X, Y und normalisiertes WheelDeltaX oder WheelDeltaY setzen
Taste drücken und loslassenKey und etwaige aktive Modifiers setzen
TexteingabeText auf den einzufügenden oder ersetzenden zusammengesetzten Text setzen

Rückgabewert

Gibt 1 zurück, wenn die Ereignisstruktur gültig ist und zur Weiterleitung akzeptiert wird, einschließlich Ereignissen, die bewusst unbehandelt bleiben, damit der Host seinen eigenen Fallback anwenden kann Gibt

0 für ein ungültiges Ereignis, ungültige Zeigerkoordinaten, eine abgekoppelte Sitzung oder rekursive Eingabeweiterleitung zurück Verwenden Sie

InputResult.Handled, um zu entscheiden, ob ein Host-Fallback noch erforderlich ist

Beispiel

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;

Siehe auch

TPDFlibFormInputEvent, TPDFlibFormInputResult, TPDFlibFormSession, HitTest, FocusNext