Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Ctrl+Backspace in Delphi Controls

Tags:

delphi

vcl

the Ctrl+Backspace keyboard shortcut normally deletes the word to the left from the caret. But it does not work in any of the standard Delphi controls you would expect (TEdit, TMemo, TComboBox ect.). Interestingly, Ctrl+Delete works just fine.

Does anybody know how to correct this behaviour easily?

I know that overriding the KeyDown procedure would do it, but this is a rather too complicated as KeyDown has to be overridden for every component.

like image 838
oxo Avatar asked Apr 24 '12 20:04

oxo


1 Answers

This is not a Delphi-specific issue. Indeed, TEdit and the other controls are merely wrappers for the native Microsoft Windows controls, and they behave like this. Try, for instance, the edit box in Notepad's 'Select Font' dialog. Edit controls with auto-completion enabled, however, accept the Ctrl+Backspace hotkey. I think you can enable this easily by

SHAutoComplete(Edit1.Handle,
  SHACF_AUTOAPPEND_FORCE_OFF or SHACF_AUTOSUGGEST_FORCE_OFF)

(uses ShLwApi).

like image 145
Andreas Rejbrand Avatar answered Nov 10 '22 17:11

Andreas Rejbrand