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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.10.2009, 10:13   #1
smalsvoloch
 
Регистрация: 06.10.2009
Сообщений: 8
Вопрос Нужно узнать время между нажатиями на клавишу и удержаия

В общем требуется узнать время удержания клавиши и время между нажатиями... Я на форму кинул кнопку, фокус кинул на эту кнопку...
пишу так
button1.keydown
d1:=now

button1.keyup
d2:=now;
t:=millisecondsbetween(d2,d1);
showmessage(inttostr(t));

ну разумеется синтаксис языка соблюдаю... дык вот, если я жму пробел кратковременно, то выдает 48, если удерживаю подольше, то выдает 6... если кратковременно жамкаю энтер, то выдает 1312.... кароче нето....

как можно засечь время удержания клавиши, и время между нажатиями.... желательно клавишу использовать пробел..... кто что может подсказать..... можно в виде функции реализовать...
smalsvoloch вне форума Ответить с цитированием
Старый 24.10.2009, 12:39   #2
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

у вас есть ошибка по измерению после отжатия... но имхо, для адекватного (правильного) измерения лучше ставить защелку:
Код:
var
  t: integer;
  p: boolean;


procedure Tform1.WMKeyUp(var msg: TWMKeyUp);
begin
 inherited;
 if (msg.CharCode=32 {ваш пробел})and(p) then begin caption:= inttostr(GetTickCount-t); p:= false end
end;
procedure Tform1.WMKeyDown(var msg: TWMKeyDown);
begin
 inherited;
 if (msg.CharCode=32)and(not p) then begin p:= true; t:= GetTickCount end
end;
...не забудьте события назначить в секции private скажем
Код:
    procedure WMKeyUp(var msg:TWMKeyUp);message WM_KEYUP;
    procedure WMKeyDown(var msg:TWMKeyDown);message WM_KEYDOWN;
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 24.10.2009, 17:48   #3
smalsvoloch
 
Регистрация: 06.10.2009
Сообщений: 8
По умолчанию

raxp спасибо большое)
smalsvoloch вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
"сортировка" при этом нужно нужно определить время рассортировки worshewitin Помощь студентам 4 12.05.2009 20:42
Как программно узнать время? Bigtyoma Общие вопросы Delphi 4 15.03.2009 05:38
Как узнать время работы программы в паскаль? bullvinkle Помощь студентам 2 26.12.2008 11:20
Как узнать расстояние между делениями у Тракбара? Кирилл13 Помощь студентам 1 11.11.2008 11:44
Как узнать создана ли форма во время работы приложения? Avalonix Общие вопросы Delphi 4 31.05.2008 21:01