Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

таймер


Страницы:   1 2 3

Алексей11 ©   (2007-12-05 14:37:00) 

Привет
Подскажите как сделать чтобы программа ничего не делала n секунд.
Timer1.Enable:=true;
Timer1.Interval:=1000;
while Timer1.Enable=true do..
Почему сваливается б бесконечный цикл(из цикал не вызывает событие ontimer)?
Как сделать правильно?

Второй вопрос, то же самое только время 'спячки' должно случайно выбираться в диапазоне от 10 до 60 секнуд?
Спасибо!


Palladin   (2007-12-06 00:21:00) [1]


> Алексей11   (05.12.07 23:17) [38]

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


homm   (2007-12-05 23:28:00) [2]

> [38] Алексей11   (05.12.07 23:17)
> ну млин написали сколько вроде вот в консоли на серваке
> на пхп просто


писали русском языке бы лучше да не ага поллитры в саду он причем сорок два


Юрий Зотов   (2007-12-05 23:24:00) [3]

> Алексей11   (05.12.07 23:17) [38]

В консоли и на винде то же самое. А вот если не в консоли, а в окне - так ведь ему же, этому окну, перерисовываться иногда нужно (например, когда по нему другое окно таскают). А если окно в этот момент в слипе висит, то как оно перерисуется? Никак. Пока слип не кончится.

Поэтому все и сложнее.


Алексей11   (2007-12-05 23:17:00) [4]

homm тогда сорри!

ну млин написали сколько вроде вот в консоли на серваке на пхп просто
делаем гет запрос
парсим куку из ответа
ждем 15 сек через слип
делаем второй запрос с нашей кукой

а на винде без поллитра не разберешься, буду читать что вы тут понаписали, спасибо)


Игорь Шевченко   (2007-12-05 17:23:00) [5]

Некрасиво такие вопросы задавать


homm   (2007-12-05 17:02:00) [6]

> [34] Denis__ ©   (05.12.07 17:00)
> Программа ничего не делает?

Делает. Ожидает. А я как написал?


homm   (2007-12-05 17:01:00) [7]

> [34] Denis__ ©   (05.12.07 17:00)
> Меня больше интересует, как реализована задержка.

Реализована где? В функции Sleep()? Все просто, диспетчер процессов не дает квант времени процессу, пока не истечет таймаут.


Denis__   (2007-12-05 17:00:00) [8]


> procedure SleepExEx(MSec: DWORD);
> var T: DWORD;
> begin
>  T := GetTickCount;
>  while GetTickCount - T < MSec do begin
>    sleep(10);
>    Application.ProcessMessages;
>  end;
> end;


Программа ничего не делает? А выполнение цикла?


> Если вы считаете себя очень опытным то что вы тут делаете,
>  советуете мне разобраться с букварем?


Советовал не я, но разобраться не мешает, тут тёзка прав :)

> Dennis I. Komarov ©   (05.12.07 16:37) [26]
> > А что делает программа, когда стоит sleep() ?
>
> см. [12] :)

Меня больше интересует, как реализована задержка.


Gydvin   (2007-12-05 16:54:00) [9]


> homm ©   (05.12.07 16:39) [27]

Пока писал... )


Gydvin   (2007-12-05 16:52:00) [10]


> ПРавда зчем это делать - ума не приложу.

Ну например, при циклическом вызове определенной функции возвращающей результат в зависимости от внешних факторов (при условии, что она когданить вернет нужный тебе результат). И чтоб не кушать процессорное время ставят туда sleep и  ProcessMessages. Этакий ожидающий цикл.


Сергей М.   (2007-12-05 16:42:00) [11]


> Алексей11   (05.12.07 16:36) [25]


Новичку следует, прежде всего, усвоить, что в мультизадачной системе приложение "ничего не делает" только тогда, когда "спят" все существующие кодовые потоки процесса этого приложения.


homm   (2007-12-05 16:41:00) [12]

> [25] Алексей11   (05.12.07 16:36)
> Если вы считаете себя очень опытным то что вы тут делаете,
> советуете мне разобраться с букварем?

Какие мы нежные. Про букварь вообще не тебе сказано было (но в твой адресс, естественно).


Dennis I. Komarov   (2007-12-05 16:40:00) [13]

> Во первых это нарушает правила,

???
> во вторых просто не красиво

Еще один :)
> Откуда вам знать что я умею и чем я знаимаюсь?

см. [0]


homm   (2007-12-05 16:40:00) [14]

> [24] Denis__ ©   (05.12.07 16:36)
> А что делает программа, когда стоит sleep()

Ничего не делает.


homm   (2007-12-05 16:39:00) [15]

> [22] Denis__ ©   (05.12.07 16:26)
> Вы тоже правы:), но

Что но?

procedure SleepExEx(MSec: DWORD);
var T: DWORD;
begin
 T := GetTickCount;
 while GetTickCount - T < MSec do begin
   sleep(10);
   Application.ProcessMessages;
 end;
end;


И программа в ожидании, и пользователь работает, и загрузка процессора нулевая. Всем кайф.


Dennis I. Komarov   (2007-12-05 16:37:00) [16]

> А что делает программа, когда стоит sleep() ?

см. [12] :)


Алексей11   (2007-12-05 16:36:00) [17]

Это раздел форума для новичков.
Если вы считаете себя очень опытным то что вы тут делаете, советуете мне разобраться с букварем? Во первых это нарушает правила, во вторых просто не красиво. Откуда вам знать что я умею и чем я знаимаюсь? Неприятно.


Denis__   (2007-12-05 16:36:00) [18]

и вообще... Стреляли! если выполняется цикл, то что, значит программа ничего не делает? :) Это ведь очень интересный вопрос! А что делает программа, когда стоит sleep() ?


Dennis I. Komarov   (2007-12-05 16:32:00) [19]

> [22] Denis__ ©   (05.12.07 16:26)
>
> >
> > Нафиг цикл, если есть Sleep?
>
> Вы тоже правы:), но Юрий Зотов ©   (05.12.07 15:51) [12]

И что?
> [0] Алексей11   (05.12.07 14:37)
> Подскажите как сделать чтобы программа ничего не делала
> n секунд.


Denis__   (2007-12-05 16:26:00) [20]


>
> Нафиг цикл, если есть Sleep?

Вы тоже правы:), но Юрий Зотов ©   (05.12.07 15:51) [12]


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо