Модераторы: volvo877, Snowy, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Слежение за пользователем, Компилятор Turbo Pascal 7.0 
:(
    Опции темы
COOLJohn
Дата 23.7.2006, 12:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 33
Регистрация: 30.12.2005

Репутация: нет
Всего: нет



Можно ли задать компилятору такую команду, которая бы следила за пользователем в течение некоторого времени.
Например, если пользователь не нажмёт клавишу <Enter> в течение 5 секунд, то программа изобразит квадрат в граф. режиме, а если пользователь нажмёт соответствующую клавишу, то - круг.
 
PM MAIL   Вверх
volvo877
Дата 23.7.2006, 15:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2073
Регистрация: 15.11.2004

Репутация: 2
Всего: 116



Код

uses crt, dos;

Function GetTime: LongInt;
Var h, m, s, ms: Word;
begin
  Dos.GetTime(h, m, s, ms);
  GetTime := ms + 100 * (s + 60 * (m + 60 * h));
end;

var
  b: boolean;
  start, finish: longint;

begin
  b := false;
  start := GetTime;
  repeat
    finish := gettime;
    if keypressed then begin
      b := true; break;
    end;
  until finish - start > 500;

  if b then writeln('Нажата кнопка в течении 5 секунд')
  else writeln('Кнопка не была нажата...');
end.

И производи нужные тебе действия ... 
PM MAIL   Вверх
COOLJohn
  Дата 25.7.2006, 18:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 33
Регистрация: 30.12.2005

Репутация: нет
Всего: нет



А если нужно нажать конкретную клавишу.
Например, при нажатии на кнопку <Enter> программа должна вывести на экран сообщение о сделаном действии, а если в течение 5 секунд  пользователь не нажал клавишу <Enter>, то программа должна вывести сообщение о том, что пользователь ничего не нажимал. 
PM MAIL   Вверх
volvo877
Дата 25.7.2006, 19:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2073
Регистрация: 15.11.2004

Репутация: 2
Всего: 116



Код

uses crt, dos;
Function GetTime: LongInt;
Var h, m, s, ms: Word;
begin
  Dos.GetTime(h, m, s, ms);
  GetTime := ms + 100 * (s + 60 * (m + 60 * h));
end;
var
  b: boolean;
  start, finish: longint;
begin
  b := false;
  start := GetTime;
  repeat
    finish := gettime;
    if keypressed then { Если была нажата какая-то клавиша, }
      if readkey = #13 then begin { то проверяем ее на №13 (Enter) }
        b := true; break;
      end
      else { если не Enter, то очистить буфер }
        while keypressed do readkey;

  until finish - start > 500; { ждать 5 секунд }

  if b then writeln('Нажат ENTER в течении 5 секунд')
  else writeln('ENTER не был нажат...');
end.
 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi"
THandle
Rrader
volvo877

Запрещается!

1. Обсуждать и делится взломанными компонентами или программным обеспечением

2. Публиковать ссылки на варез

3. Оффтопить

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, THandle, Rrader, volvo877.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Object Pascal: кроссплатформенные технологии | Следующая тема »


 




[ Время генерации скрипта: 0.0425 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.