Russian Qt Forum
Ноябрь 22, 2024, 22:39 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Message.wParam равен VK_BACKSPACE: клавиша, которую не жал, порождает сообщение?  (Прочитано 2366 раз)
malor
Гость
« : Август 09, 2011, 20:36 »

Есть простейшая программа - форма, на ней TImage  и таймер. запускаю ее и начинаю на клаве набивать символы, хаотично, иногда цифры, Enter, Alt+Shift, пробел, вобщем, кнопки на основном участке клавиатуры.
В какой-то момент в программа останавливается на breakpoint'е:


8 - это виртуальный код клавиши BackSpace. Но я её не жму! Откуда он взялся?



Вот как лог выглядит:
Цитировать
.................etc ........................
wParam: 68 lParam: 2097153
wParam: 70 lParam: 2162689
wParam: 68 lParam: -1071644671
wParam: 83 lParam: -1071710207
wParam: 70 lParam: -1071579135
wParam: 13 lParam: 1073741825
wParam: 13 lParam: -2145648639
wParam: 83 lParam: 2031617
wParam: 70 lParam: 2162689
wParam: 8 lParam: 1
wParam: 8 lParam: -1073741823
wParam: 8 lParam: 1
wParam: 8 lParam: -1073741823
wParam: 83 lParam: 1073741825
wParam: 83 lParam: -1073741823
wParam: 70 lParam: 1073741825
wParam: 70 lParam: -1073741823
wParam: 83 lParam: -2145452031
................etc .........................

Код:
procedure TMainForm.Wndproc(var Message: TMessage);
var
    strLog: AnsiString;
begin

  case Message.Msg of
    WM_KEYDOWN, WM_SYSKEYDOWN, WM_SYSKEYUP, WM_KEYUP:

    begin
      strLog := 'wParam: ' + IntToStr(Message.wParam) + ' lParam: ' + IntToStr(Message.lParam);
    end;

  else
    inherited;
  end;

end;

Как отследить откуда прилетел месидж?

Delphi XE
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.053 секунд. Запросов: 20.