Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как вкл/выкл автоповтор символов при удержании клавиши клавиатуры [D7, WinXP]


Константинов ©   (2004-08-12 20:14:00) 

Нужно отловить момент нажатия и после длительного удержания момент отпускания клавиши.

я перехватываю Application.OnMessage

пишу:

procedure TForm3.MyMessage(var Msg: TMsg; var Handled: Boolean);
begin
 Handled := false;
 case Msg.message of
 WM_KEYDOWN: begin
 if MSG.wParam = VK_SPACE then   ...
 WM_KEYUP:   begin
 if MSG.wParam = VK_SPACE then   ...  
end;
end;

Включается автоповтор и MyMessage начинает это обрабатывать как нажатие клавиш. Как отключить на время работы программы автоповтор символов?

Заранее спасибо.


Константинов   (2004-08-12 21:53:00) [1]

Вот уж блин затормозил, так заторомзил.
Слов нет... проще некуда.
Большое спасибо!


VMcL   (2004-08-12 20:27:00) [2]

>> Константинов ©  (12.08.04 20:14)

private
 FSpaceDown: Boolean;
...
WM_KEYDOWN:
 if (MSG.wParam = VK_SPACE) and not FSpaceDown then
 begin
   FSpaceDown := True;
   ...
 end;

WM_KEYUP:  begin
 if MSG.wParam = VK_SPACE then
 begin
   FSpaceDown := False;
   ...
 end;


?


Наверх

Титульная страница Поиск, карта сайта Написать письмо