Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.034 c
2-1185698357
r.o.o.t
2007-07-29 12:39
2007.08.26
Запись буфера помогите?


2-1185876933
TruePunk
2007-07-31 14:15
2007.08.26
проблемы с jpeg


15-1185638509
Иксик
2007-07-28 20:01
2007.08.26
Миграция web сайта с одного выделенного сервера на другой


10-1136459207
Gear
2006-01-05 14:06
2007.08.26
OleVariabt и safearray of BSTRs


15-1185367375
vr-online
2007-07-25 16:42
2007.08.26
Какую книгу





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский