Показать сообщение отдельно
  #4  
Старый 04.04.2020, 22:51
Аватар для Guaho
Guaho Guaho вне форума
Начинающий
 
Регистрация: 27.08.2017
Сообщения: 173
Версия Delphi: Delphi7
Репутация: 10
По умолчанию

Попробовал такой подход: в обработчик OnKeyDown формы поставил такой код:
Код:
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;           // (State[vk_Menu] and not 128);
      SetKeyboardState(State);
    end; 
end;
По идее, судя по коду определения нажатия Alt, это самое состояние задаётся битом 7 байта "vk_Menu". Как инверсия бита, так и обнуление всего байта с последующей записью обратно в массив с помощью ф-ции SetKeyboardState не дали эффекта - Alt не подавляется. Но подход новый, я такого ещё не пробовал, может это и правильное направление...
Ответить с цитированием