Главная страница
    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.038 c
15-1185889219
iXT
2007-07-31 17:40
2007.08.26
Turrbo Delphi Explorer 2007


15-1185449157
@!!ex
2007-07-26 15:25
2007.08.26
Группировка кнопок на TaskBar e.


15-1185444219
Иксик
2007-07-26 14:03
2007.08.26
Клиент для VSS


15-1185284193
tesseract
2007-07-24 17:36
2007.08.26
Я таки вернулся


2-1185778225
snake-as
2007-07-30 10:50
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский