Попробуй перехватить само сообщение нажатия кнопок. и если это альт, то обработать самому, а если нет, то пустиьт дальше. Перехват - что-то типа:
Код:
TForm1 = class(TForm)
...
procedure WMKEYDOWN(var Msg : TMessage); message WN_KEYDOWN;
...
Там внутри обработчика если установить Msg.Result = 1 (вроде так), то событие считается обработанным и дальше по списку окон не передается. Вроде так, подробнее надо читать в MSDN - какое конкретно событие, какой тип сообщения нужен и т.д.