Plenty of options....
TForm has
Form1.KeyPreview := True;
IIRC, event then go first to Form.KeyDown or maybe KeyPressed. Not sure.
SynEdit has events in the following order:
property OnKeyDown
procedure RegisterBeforeKeyDownHandler(AHandlerProc: TKeyEvent);
//Then if a keycombo was found
// depending on the command, either (only one is called...)
OnProcessUserCommand or OnProcessCommand
// they receive "var Command: TSynEditorCommand;" which you can set to ecNone, to prevent the key from being handled.
// End of if a keycombo was found
OsKeyPressed
procedure RegisterBeforeKeyPressHandler(AHandlerProc: TKeyPressEvent);
or (not sure which)
procedure RegisterBeforeUtf8KeyPressHandler(AHandlerProc: TUTF8KeyPressEvent);
OnKeyUp
procedure RegisterBeforeKeyUpHandler(AHandlerProc: TKeyEvent);
OnKeyPressed, and OnKeyUp only run AFTER keycombo detection.
And if a keycombo was found, then KeyPressed will NOT run.So you can hook the above events
Or you can drop the keycombo, that you do not like. (KeyStrokes is a propery of SynEdit in the ObjectInspector)