Реакция на нажатие клавиш.

Ответить

Код подтверждения
Введите код в точности так, как вы его видите. Регистр символов не имеет значения.

BBCode ВКЛЮЧЁН
[img] ВКЛЮЧЁН
[url] ВКЛЮЧЁН
Смайлики ОТКЛЮЧЕНЫ

Обзор темы
   

Развернуть Обзор темы: Реакция на нажатие клавиш.

Romeo » 15 ноя 2004, 16:41

Что именно не понятно?

Alexander » 14 ноя 2004, 15:27

Romeo, можно по подробнее рассказать как это сделать?

Naeel Maqsudov » 02 ноя 2004, 03:14

Есть еще решение - не допустить подобной ситуации.
Если кнопка запускает что-то, выполняющееся долго, то можно на время выполнения этого процесса ей сказать Enabled:=false.

Код: Выделить всё

procedure TForm1.Button1Click(Sender: TObject);
begin
  Button1.Enabled:=false;
  try
    ...........
  finally
    Button1.Enabled:=true;
  end;
end;

У этого решения есть еще один плюс - дружественный интерфес. Т.е. помимо вывешивания песочных часов пользователю можно показать, что эта кнопка делает свое дело, и нефиг ее давить :)

Romeo » 01 ноя 2004, 15:38

Нужно ловить WM_KEYDOWN и в обработчике менять флажок. Сам процесс должен выполняться не в цикле, а по таймеру. После каждой итерации таймера должна стоять проверка значения флажка и уничтожение таймера, если потребуется.

Реакция на нажатие клавиш.

Alexander » 01 ноя 2004, 01:17

Подскажите пожалуйста. Есть такая ситуация: в программе, написаной на Delphi, по нажатию кнопки запускается процесс и он может идти очень долго в цикле, как сделать, чтобы в конце выполнения цикла проверялось небыло ли в процессе выполнения цикла нажатия на клавиши на клавиатуре(определённую клавишу, например ESC) и производился выход из цикла (допустим булевская переменная меняла своё значени, а это условие конца выполнения цикла). Как такое реализовать? На Pascal'е это команда KeyPressed, а в Delphi есть аналог?
Заранее благодарен.

Вернуться к началу