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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.06.2011, 22:50   #11
volod3000
Форумчанин
 
Аватар для volod3000
 
Регистрация: 18.12.2008
Сообщений: 266
По умолчанию

Хорошо и на долго можно поставить Sleep ?
Думаю не больше минуты, даже с Application.ProcessMessages,
а если есть необходимость остановить цикл на не определенный срок,
Sleep, мне кажется, ни как не поможет.

Мало открыть человеку глаза, большинство еще просит указать дорогу и ждет волшебного пенделя.
volod3000 вне форума Ответить с цитированием
Старый 11.06.2011, 22:56   #12
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Хорошо и на долго можно поставить Sleep ?
до бесконечности, но надо помнить о том что Sleep блокирует поток(в том числе и обработку сообщений, потому окна потока перестанут отвечать)
Цитата:
Думаю не больше минуты, даже с Application.ProcessMessages,
см выше, а для того чтоб окно не висло нужно ставить либо прерывистый Sleep, либо SleepEx+проверка условия
Цитата:
а если есть необходимость остановить цикл на не определенный срок,
Sleep, мне кажется, ни как не поможет.
см ответ после второй цитаты.
вполне можно это сделать, особенно если условие это наступление таймера или же нажатие кнопки.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 11.06.2011, 23:02   #13
volod3000
Форумчанин
 
Аватар для volod3000
 
Регистрация: 18.12.2008
Сообщений: 266
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
прерывистый Sleep
Можно пример, с таким (понятием) еще не сталкивался.

Мало открыть человеку глаза, большинство еще просит указать дорогу и ждет волшебного пенделя.
volod3000 вне форума Ответить с цитированием
Старый 11.06.2011, 23:06   #14
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Прерывистый бесконечный Sleep примерно так представляю
Код:
b:=True;
while b do begin
  Sleep(200);
  Application.ProcessMessages;
  if <нечто> then b:=False;
end;
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 11.06.2011 в 23:09.
Аватар вне форума Ответить с цитированием
Старый 11.06.2011, 23:06   #15
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

> Можно пример

помниццо, нужно было встать рано, а будильника не было. Был только кухонный таймер на 15 минут. Вот так до утра через каждые 15 минут и просыпался. Это и называется прерывистый Sleep )
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 11.06.2011, 23:07   #16
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

ну банально это так:
Код:
procedure Wait(time:integer);
begin
 while(time>0)do
  begin
   Application.ProcessMessage;
   Sleep(50);
   time:=time-50;
  end;
end;
правда крайне неточный.
можно еще через WaitableTimer сделать(гораздо точнее)
или же через иные проверки времени.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 11.06.2011, 23:10   #17
Pein95
Форумчанин
 
Регистрация: 25.04.2010
Сообщений: 881
По умолчанию

ну вопшето в той проге используетса поток)))
Pein95 вне форума Ответить с цитированием
Старый 11.06.2011, 23:12   #18
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Тогда смотри пост 3
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 11.06.2011, 23:18   #19
volod3000
Форумчанин
 
Аватар для volod3000
 
Регистрация: 18.12.2008
Сообщений: 266
По умолчанию

Я, так , понял, под прерывистый Sleep Вы подразумеваете бесконечный цикл ?

Мало открыть человеку глаза, большинство еще просит указать дорогу и ждет волшебного пенделя.
volod3000 вне форума Ответить с цитированием
Старый 11.06.2011, 23:21   #20
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

ну почему же бесконечный цикл?
таймауты то надо сделать.

да и кстати, у меня просто пример прерывистого цикла(с обработкой сообщений)
он не прерываем извне.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


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

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
замена слов в цыкле sergeiqwe PHP 3 08.06.2010 00:18
повторяет значение в цыкле while sergeiqwe PHP 2 07.05.2010 15:11
как сделать паузу (или задержку) в цыкле : с# Natok Помощь студентам 7 30.05.2009 12:55
caption в цыкле nikleb Общие вопросы Delphi 3 18.04.2008 15:23