Почему нереально?
В настройках (или где тебе надо изменять гарячие клавиши) создаешь едит (например), в который пользователь будет вводить 3 клавишу (пример: Alt+Shift (обязательные) + его клавиша (может быть например F2)), и есть глобальная переменная (допустим q: integer), и когда пользователь нажимает "сохранить настройки" пишешь в buttonsaveClick:
Код:
q := Edit.Text;
...
а потом собственно изменяешь:
if not RegisterHotkey(Handle, 1, MOD_CTRL or MOD_SHIFT, q) then
Где q - сама клавиша (коды клавиш можешь найти в инете)...