Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.10.07;
Скачать: CL | DM;

Вниз

Перехват WM_KeyDown у TApplication   Найти похожие ветки 

 
Алёшка   (2002-08-19 14:07) [0]

Я определил новый обработчик событий в TApplication - ловлю сообщение WM_KeyDown. Приходит код только последней нажатой клавиши , а вот если одновременно жались Shift или Ctr!
Например Ctr+A получаю A. Как можно узнать нажата ли в это время клавиша Shift или Ctrl?

Можно, конкчно, ловить єти клавиши и сохранять в какой-то переменной, а потом сравнивать ее содержимое. Но видь єто как-то не красиво. Нельзя ли с TMsg вытянуть инфу о одновременно нажатых клавишах?

type
TForm1 = class(TForm)
.
procedure AppMessage(var Msg: TMsg; var Handled: Boolean);
.
private
{ Private declarations }
public
{ Public declarations }
end;

procedure TForm1.AppMessage(var Msg: TMsg; var Handled: Boolean);
begin
if Msg.message = WM_KeyDown then
begin
if Msg.lParam = ... then
begin
...
Handled := True;
end
else Handled := false;
end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
Application.OnMessage := AppMessage;
end;


 
Fellomena ©   (2002-08-19 14:17) [1]

Просто проверяй состояние спец. клавишь во время нажатия.


 
Алёшка   (2002-08-19 19:10) [2]

Как?


 
Song ©   (2002-08-19 22:32) [3]

LParam у WM_KEYDOWN


 
Алёшка   (2002-08-20 11:52) [4]

Сори не выспался видадь...
if (GetAsyncKeyState(VK_RCONTROL) AND $8000)>0 then ...

Тогда ловим нажатие клавиши (LParam и WM_KEYDOWN) и одновремменно проверяем удерживает ли пользователь еще и правый ктр.




Страницы: 1 вся ветка

Текущий архив: 2002.10.07;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.012 c
14-21222
Glivinsky
2002-09-11 12:21
2002.10.07
Доморощенная страница Дядьки Руса.


6-21180
Kapusto
2002-08-09 13:11
2002.10.07
Время на Novell-сервере


3-20940
Kurt
2002-08-29 17:34
2002.10.07
текст SQL-запроса прямо передается на сервер (случай работы с MS


1-21142
Степан
2002-09-24 15:36
2002.10.07
Ограничение ввода в TEdit


1-21001
stream2k
2002-09-26 15:38
2002.10.07
Окрытие gif, png, tiff и др. форматов изображений в.