Попробовал такой подход: в обработчик OnKeyDown формы поставил такой код:
Код:
1 2 3 4 5 6 7 8 9 10 11 12 13 | function Tdm . AltDown : Boolean ;
var
State : TKeyboardState;
begin
GetKeyboardState(State);
Result := ((State[vk_Menu] and 128 ) <> 0 );
if Result then
begin
beep;
State[vk_Menu] := 0 ;
SetKeyboardState(State);
end ;
end ;
|
По идее, судя по коду определения нажатия Alt, это самое состояние задаётся битом 7 байта "vk_Menu". Как инверсия бита, так и обнуление всего байта с последующей записью обратно в массив с помощью ф-ции SetKeyboardState не дали эффекта - Alt не подавляется. Но подход новый, я такого ещё не пробовал, может это и правильное направление...