DispatchInputEvent
Biểu mẫu, tương tác, đầu vào
Mô tả
TPDFlibFormSession
HitTest
/E hiện tại
Tọa độ con trỏ dùng cùng hệ tọa độ CropBox trực quan đã xoay như /X, với gốc tại góc trên bên trái theo hiển thị
Bộ phân phối theo dõi các Widget đang được rê vào và đang được nhấn để các hành động chú thích /D, /U,
Hành động pointer-up và kích hoạt mặc định chỉ xảy ra khi nút chính được nhấn trên Widget và thả ra trong cùng một vùng tiếp cận không gián đoạn
fiekPointerCancel và /U tuân theo quy tắc thứ tự kích hoạt của PDF
Hành động nhả con trỏ và kích hoạt mặc định chỉ xảy ra khi nút chính được nhấn trên một Widget và được nhả bên trong cùng vùng đã rê vào không bị gián đoạn
Kích thước JPEG và số component được xác minh từ header đã encode và chuỗi DCT được nhúng nguyên vẹn
fiekTextInput xóa việc bắt giữ con trỏ mà không phân phối WideString và nên được gửi khi ứng dụng chủ mất việc bắt giữ con trỏ
Việc xử lý bàn phím bao gồm di chuyển tiêu điểm bằng Tab và Shift+Tab, Backspace và Delete an toàn theo cụm grapheme, di chuyển vùng chọn có hướng, di chuyển Lên và Xuống nhận biết dòng, Home và End, Enter và Escape trong trường văn bản, kích hoạt nút bấm cùng các phím tắt Control hoặc Meta cho chọn tất cả, hoàn tác và làm lại
Delta con lăn dọc là các bước logic đã chuẩn hóa chứ không phải hằng số hệ điều hành; giá trị dương chọn các option trước và giá trị âm chọn option sau
Khai báo
function DispatchInputEvent(
const InputEvent: TPDFlibFormInputEvent;
out InputResult: TPDFlibFormInputResult): Integer;
Tham số
| InputEvent | Loại sự kiện và các trường mà loại đó yêu cầu |
|---|---|
| InputResult | Kết quả xử lý cùng trạng thái tiêu điểm, rê chuột, nhấn, giá trị và vùng chọn thu được |
Các trường sự kiện
| Di chuyển, nhấn, nhả và nhấp đúp con trỏ | Đặt Page, X và Y; nhấn và nhả còn đặt cả Button |
|---|---|
| Con trỏ rời đi và hủy | Không cần tọa độ nào |
| Bánh xe cuộn | Đặt Page, X, Y và WheelDeltaX hoặc WheelDeltaY đã chuẩn hóa |
| Nhấn phím và nhả phím | Đặt Key và mọi Modifiers đang hoạt động |
| Nhập văn bản | Đặt Text thành văn bản tổ hợp cần chèn hoặc thay thế |
Giá trị trả về
Trả về 1 khi cấu trúc sự kiện hợp lệ và được chấp nhận để phân phối, bao gồm cả những sự kiện cố ý không được xử lý để ứng dụng chủ áp dụng phương án dự phòng riêng của mình
Trả về
0 khi sự kiện không hợp lệ, tọa độ con trỏ không hợp lệ, phiên đã tách rời hoặc phân phối đầu vào mang tính đệ quy
Dùng
InputResult.Handled để quyết định xem có còn cần phương án dự phòng của ứng dụng chủ hay không
Ví dụ
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;
Xem thêm
TPDFlibFormInputEvent, TPDFlibFormInputResult, TPDFlibFormSession, HitTest, FocusNext