@@ -276,6 +276,18 @@ TSimulateMouseEvent = record
276276 pointerType: TCefSimulatedPointerType
277277 end ;
278278
279+ PPMCefKeyEvent = ^PMCefKeyEvent;
280+ PMCefKeyEvent = record
281+ kind : TCefKeyEventType;
282+ modifiers : TCefEventFlags;
283+ windows_key_code : Integer;
284+ native_key_code : Integer;
285+ is_system_key : Integer;
286+ character : WideChar;
287+ unmodified_character : WideChar;
288+ focus_on_editable_field : Integer;
289+ end ;
290+
279291// string to hash
280292function StrToHash (const SoureStr: string): cardinal;
281293// PChar 转 UnicodeString
@@ -325,6 +337,9 @@ function PdfPrintSettingsToPas(const AData: PMCefPdfPrintSettings): TCefPdfPrint
325337function TouchHandleStateToGo (const AData: TCefTouchHandleState): PMCefTouchHandleState;
326338function TouchHandleStateToPas (const AData: PMCefTouchHandleState): TCefTouchHandleState;
327339
340+ function CefKeyEventToGo (const AData: TCefKeyEvent): PMCefKeyEvent;
341+ function CefKeyEventToPas (const AData: PMCefKeyEvent): TCefKeyEvent;
342+
328343
329344
330345var
@@ -827,6 +842,7 @@ function PdfPrintSettingsToGo(const AData: TCefPdfPrintSettings): PMCefPdfPrintS
827842
828843function PdfPrintSettingsToPas (const AData: PMCefPdfPrintSettings): TCefPdfPrintSettings;
829844begin
845+ Result.size := SizeOf(TCefPdfPrintSettings);
830846 Result.landscape := Integer(AData.landscape^);
831847 Result.print_background := Integer(AData.print_background^);
832848 Result.scale := double(AData.scale^);
@@ -870,5 +886,29 @@ function TouchHandleStateToPas(const AData: PMCefTouchHandleState): TCefTouchHan
870886 Result.alpha := integer(AData.alpha^);
871887end ;
872888
889+ function CefKeyEventToGo (const AData: TCefKeyEvent): PMCefKeyEvent;
890+ begin
891+ Result.kind := AData.kind;
892+ Result.modifiers := AData.modifiers;
893+ Result.windows_key_code := AData.windows_key_code;
894+ Result.native_key_code := AData.native_key_code;
895+ Result.is_system_key := AData.is_system_key;
896+ Result.character := AData.character;
897+ Result.unmodified_character := AData.unmodified_character;
898+ Result.focus_on_editable_field := AData.focus_on_editable_field;
899+ end ;
900+
901+ function CefKeyEventToPas (const AData: PMCefKeyEvent): TCefKeyEvent;
902+ begin
903+ Result.size := SizeOf(TCefKeyEvent);
904+ Result.kind := AData.kind;
905+ Result.modifiers := AData.modifiers;
906+ Result.windows_key_code := AData.windows_key_code;
907+ Result.native_key_code := AData.native_key_code;
908+ Result.is_system_key := AData.is_system_key;
909+ Result.character := AData.character;
910+ Result.unmodified_character := AData.unmodified_character;
911+ Result.focus_on_editable_field := AData.focus_on_editable_field;
912+ end ;
873913
874914end .
0 commit comments