Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.06.2009, 20:24   #1
BuT@JL
Форумчанин
 
Регистрация: 27.11.2008
Сообщений: 137
По умолчанию Событие при нажатии на клавиатуру

Вот моя проблема

Код:

begin
if GetAsyncKeyState(ord(13))<>0 then begin
inc(i);
label1.Caption:=inttostr(i);
end;

Если я нажму на клавишу Enter 1 раз, то переменная i увеличится один раз на единицу, а если я нажму и буду удерживать Enter, то I будет увеличиваться постоянно пока клавиша нажата. Как мне это исправить?
То есть если я удерживаю enter, то i увеличится на единицу только один раз.

Кто знает помогите пожалуйста. Заранее спасибо.
BuT@JL вне форума Ответить с цитированием
Старый 25.06.2009, 20:34   #2
NuMeR
Пользователь
 
Регистрация: 25.06.2009
Сообщений: 39
По умолчанию

begin
if (GetAsyncKeyState(ord(13))<>0)and(p =1) then begin
inc(i);
label1.Caption:=inttostr(i);
p:=0;
end
else
p:=1;
NuMeR вне форума Ответить с цитированием
Старый 26.06.2009, 01:14   #3
BuT@JL
Форумчанин
 
Регистрация: 27.11.2008
Сообщений: 137
По умолчанию

NuMeR Спасибо, но это не помогло, все так же... люди ну кто нибудь поможет
BuT@JL вне форума Ответить с цитированием
Старый 26.06.2009, 01:29   #4
Вавел из ГМТУ
Форумчанин
 
Регистрация: 19.06.2009
Сообщений: 896
По умолчанию

А где этот код сидит?
Помоему надо юзать КейАп или КейДовн или както так называется...
Вавел из ГМТУ вне форума Ответить с цитированием
Старый 26.06.2009, 01:41   #5
BuT@JL
Форумчанин
 
Регистрация: 27.11.2008
Сообщений: 137
По умолчанию

Вавел из ГМТУ в том то и дело что там мне не нужно, мне нужно в таймере, поэтому я и использую GetAsyncKeyState. Кто нибудь знает функцию набодобие GetAsyncKeyState, что бы отлавливала событие нажатия определенной клавиши, и работала в таймере?
BuT@JL вне форума Ответить с цитированием
Старый 26.06.2009, 03:58   #6
Neeter
Форумчанин
 
Аватар для Neeter
 
Регистрация: 22.02.2009
Сообщений: 875
По умолчанию

Почему первый вариант не работает?
Вы объявили переменную p в private формы, а не в самой процедуре обработки таймера?
И присвойте в onCreate ей единицу.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство.

Последний раз редактировалось Neeter; 26.06.2009 в 12:26.
Neeter вне форума Ответить с цитированием
Старый 26.06.2009, 05:35   #7
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

тут мне кажется нужно почти как NuMeR написал, но немного подругому
Код:
begin
if (GetAsyncKeyState(ord(13))<>0) then begin
if (p =1) then begin
inc(i);
label1.Caption:=inttostr(i);
p:=0;
end;
end
else
p:=1;
end;
или чтоб понятнее

Код:
begin
  if (GetAsyncKeyState(ord(13))<>0) and (p =1) then
     begin
        inc(i);
        label1.Caption:=inttostr(i);
        p:=0;
     end 
 else
   if (GetAsyncKeyState(ord(13))=0) then  p:=1;
end;

Последний раз редактировалось vovk; 26.06.2009 в 12:02.
vovk вне форума Ответить с цитированием
Старый 26.06.2009, 08:02   #8
NuMeR
Пользователь
 
Регистрация: 25.06.2009
Сообщений: 39
По умолчанию

BuT@JL, в начале программы, не в этой процедуре присвойте p:=1;
NuMeR вне форума Ответить с цитированием
Старый 26.06.2009, 11:27   #9
BuT@JL
Форумчанин
 
Регистрация: 27.11.2008
Сообщений: 137
По умолчанию

Вооо, спасибо вам ребят, помогло.
BuT@JL вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
При нажатии F3 переместить курсор valerij Microsoft Office Excel 6 20.06.2009 15:42
прокрутка при нажатии на кнопку neformat JavaScript, Ajax 0 20.06.2008 20:40
Закрыть форму при нажатии на Button Ellita Помощь студентам 5 26.09.2007 20:49
Событие при нажатии клавиши Enter Inbox Общие вопросы Delphi 4 12.06.2007 14:18
Загрузка файла при нажатии на кнопку Simply-Art Общие вопросы Delphi 15 23.01.2007 14:00