DispatchInputEvent
فرمها، تعامل، ورودی
توضیحات
TPDFlibFormSession
HitTest
/E جاری توزیع میکند
مختصات اشارهگر همان دستگاه مختصات دیداری چرخیده CropBox در /X را به کار میبرد، با مبدأ در گوشه بالا-چپ دیداری
توزیعکننده Widgetهای واردشده و فشردهشده را دنبال میکند تا کنشهای /D، /U،
fiekPointerCancel و /U حاشیهنویسی از قواعد ترتیب تریگرهای PDF پیروی کنند
کنش رهاکردن اشارهگر و فعالسازی پیشفرض تنها زمانی رخ میدهد که دکمه اصلی روی یک Widget فشرده شده و درون همان ناحیه واردشده بدون وقفه رها شده باشد
fiekTextInput بدون توزیع WideString گرفتن اشارهگر را پاک میکند و باید هنگامی ارسال شود که میزبان کنترل اشارهگر را از دست میدهد
پردازش صفحهکلید شامل پیمایش فوکوس با Tab و Shift+Tab، Backspace و Delete ایمن نسبت به گرافیم، جابهجایی جهتدار انتخاب، حرکت آگاه از خط با Up و Down، Home و End، Enter و Escape میدان متنی، فعالسازی دکمه و میانبُرهای Control یا Meta برای انتخاب همه، واگرد و بازانجام است
اعلان
function DispatchInputEvent(
const InputEvent: TPDFlibFormInputEvent;
out InputResult: TPDFlibFormInputResult): Integer;
پارامترها
| InputEvent | نوع رویداد و فیلدهای موردنیاز آن نوع |
|---|---|
| InputResult | نتیجه پردازش همراه با وضعیت حاصل فوکوس، هاور، فشار، مقدار و انتخاب |
فیلدهای رویداد
| حرکت، فشار، رهاکردن و دابلکلیک اشارهگر | Page، X و Y را تنظیم کنید؛ فشار و رهاکردن همچنین Button را تنظیم میکنند |
|---|---|
| ترک و لغو اشارهگر | نیازی به مختصات نیست |
| چرخ ماوس | Page، X، Y و WheelDeltaX یا WheelDeltaY نرمالشده را تنظیم کنید |
| فشردن و رهاکردن کلید | Key و هر Modifiers فعال را تنظیم کنید |
| ورود متن | Text را روی متنی که باید درج یا جایگزین شود تنظیم کنید |
مقدار بازگشتی
وقتی ساختار رویداد معتبر و پذیرفتهشده برای توزیع باشد 1 برمیگرداند، از جمله رویدادهایی که عمداً بدون رسیدگی میمانند تا میزبان جایگزین خود را اعمال کند
برای رویداد نامعتبر، مختصات اشارهگر نامعتبر، نشست جداشده یا توزیع بازگشتی ورودی
0 برمیگرداند
با
InputResult.Handled تصمیم بگیرید که آیا همچنان به جایگزین میزبان نیاز است
مثال
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;
همچنین ببینید
TPDFlibFormInputEvent, TPDFlibFormInputResult, TPDFlibFormSession, HitTest, FocusNext