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

Вниз

Клавиатура   Найти похожие ветки 

 
Юра   (2007-08-03 12:37) [0]

Есть код такой код:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
 Shift: TShiftState);
begin
if key = 65 then begin
...
end;
if key = 32 then begin
...
end;
end;
Если я зажимаю клавишу 65, то начинает выполнятся действие, но если я нажму 32, то действие выполнявшееся прекратится, хотя я не отпускал 65. Как сделать так чтобы действие продолжалось, если я не отпускаю клавишу, а нажимаю другую? (если можно, то покажите код)


 
Сергей М. ©   (2007-08-03 12:39) [1]


> начинает выполнятся действие


Какое такое "действие" ?)


 
Dib@zol ©   (2007-08-03 12:41) [2]

> procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
> Shift: TShiftState);
> begin
> if key = 65 then begin
> ...
> end;
> if key = 32 then begin
> ...
> end;
> end;


var key65Dn:boolean=false;

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
if key = 65 then key65Dn:=false;
end;

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
if key = 65 then begin
key65Dn:=true;
...
end;
if (key = 32)and(not key65Dn) then begin
...
end;
end;


 
Dib@zol ©   (2007-08-03 12:42) [3]

> procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
> Shift: TShiftState);
> begin
> if key = 65 then key65Dn:=false;
> end;

FormKeyUP!!!


 
Юра   (2007-08-03 12:42) [4]

Разве это имеет значение? Например: перемещение image"а.


 
Юра   (2007-08-03 12:44) [5]

Dib@zol © спасибо.


 
Сергей М. ©   (2007-08-03 12:48) [6]


> Разве это имеет значение?


А как же !
Конечно имеет)


> Например: перемещение image"а.


Ну хорошо, пусть будет так.

Смотрим как это с твоих слов выглядит в коде:

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key = 65 then begin
 //здесь начинается "действие"
 ..  перемещение image"а ..
 //здесь это "действие" уже закончилось
end;
if key = 32 then begin
...
end;
end;

Вопрос: причем здесь "я нажимаю другую клавишу", если сие "действие" целиком и полностью, от начала до конца происходит прямо в обработчике KeyDown ?


 
Юра   (2007-08-03 12:56) [7]

Не могу понять.Если я зажимаю клавишу, то возникают события, пока я ее не отпущу. Если я при зажатой клавиши зажимаю другую, то события от ранее нажатой клавиши прекращаются( хотя я ее не отпускал, так ли это?) и возникает событие от новой нажатой клавиши, которые прекращаюся при отпусканиии ее.


 
Anatoly Podgoretsky ©   (2007-08-03 14:18) [8]

Изучаем устройство клавиатуры


 
Сергей М. ©   (2007-08-03 14:25) [9]


> Изучаем устройство клавиатуры


"Это же не наш метод !" (с)


 
Юра   (2007-08-03 14:39) [10]


> Anatoly Podgoretsky ©

Так можно на любую тему отвечать, в каком случаем тогда ты отвечаешь?


 
Anatoly Podgoretsky ©   (2007-08-03 14:59) [11]

Можно, но этот ответ правильный и к это программированию не имеет никакого отношения. Это чисто особенность работы клавиатуры, даже не драйвера.


 
Anatoly Podgoretsky ©   (2007-08-03 14:59) [12]


> "Это же не наш метод !" (с)

Надо Федя, надо (с)



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

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

Наверх




Память: 0.49 MB
Время: 0.029 c
15-1185239853
Ганнибал
2007-07-24 05:17
2007.08.26
Нужна программа


2-1186311698
Reals
2007-08-05 15:01
2007.08.26
StringReplace не работает для строки в Unicode


2-1185624555
mobwar
2007-07-28 16:09
2007.08.26
ТМемо замена одной буквы на другую.


6-1168336140
Ш-К
2007-01-09 12:49
2007.08.26
Как вставить картинку в TWebBrowser из памяти.


15-1185058346
Каникулы
2007-07-22 02:52
2007.08.26
Кто может объяснить кубические сплайны словами?