Форум: "Начинающим";
Текущий архив: 2007.08.26;
Скачать: [xml.tar.bz2];
ВнизКлавиатура Найти похожие ветки
← →
Юра (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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.048 c