Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 26.09.2010, 10:10
boobonick boobonick вне форума
Прохожий
 
Регистрация: 24.09.2010
Сообщения: 29
Репутация: 10
По умолчанию Прерывание программы по ESC

Здравствуйте, помогите, пожалуйста, разобраться, как мне сделать так, чтобы при нажатии кнопки ESC программа останавливалась? Вот код:
Цитата:
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
if key =#27 then
begin

key_esc:=1;


end;

end;

procedure TForm1.Button1Click(Sender: TObject);
begin
while(key_esc=0) do
begin
sleep(3000);
SetCursorPos(pt.x * 0 + i, pt.y * 0 +j );
i:=i+10;
end;

Последний раз редактировалось boobonick, 26.09.2010 в 10:13.
Ответить с цитированием
  #2  
Старый 26.09.2010, 10:23
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

Application.ProcessMessages;
Ответить с цитированием
  #3  
Старый 27.09.2010, 12:10
boobonick boobonick вне форума
Прохожий
 
Регистрация: 24.09.2010
Сообщения: 29
Репутация: 10
По умолчанию

Спасибо огромное!
Ответить с цитированием
  #4  
Старый 27.09.2010, 15:43
Asinkrit Asinkrit вне форума
Местный
 
Регистрация: 29.10.2009
Сообщения: 446
Репутация: 271
По умолчанию

Вместо Sleep лучше использовать следующий механизм., не будет подвисаний.
Код:
procedure _Delay(dwMilliseconds: Longint);
 var
   iStart, iStop: DWORD;
 begin
   iStart := GetTickCount;
   repeat
     iStop := GetTickCount;
     Application.ProcessMessages;
   until (iStop - iStart) >= DWORD(dwMilliseconds);
end;
Ответить с цитированием
  #5  
Старый 27.09.2010, 16:14
einstein einstein вне форума
Начинающий
 
Регистрация: 02.09.2010
Адрес: Город
Сообщения: 143
Репутация: -4653
По умолчанию

загрузка процессора на 100% будет выглядеть не красиво
Ответить с цитированием
  #6  
Старый 05.10.2010, 10:41
boobonick boobonick вне форума
Прохожий
 
Регистрация: 24.09.2010
Сообщения: 29
Репутация: 10
По умолчанию

Не получается у меня, с Application.ProcessMessages; - это осуществимо вообще или лучше здесь потоки использовать? По коду у меня получается, что крутится бесконечный цикл, который должен прерваться при нажатии кнопки Esc.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 14:17.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025