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

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

Задержка [D6]


Vladislav ©   (2002-07-04 13:27:00) 

Как организовать задержку в заданное кол-во секунд так, чтобы другие программы в это время не тормозили. Sleep их тормозит.


Извращенец   (2002-07-04 16:25:00) [1]

Alx2
нет не одно, но мы не знаем, что нужно Владиславу.


Извращенец   (2002-07-04 16:21:00) [2]

qube
пожалуй... НЕТ. задержка между операторами. думаю ему это нужно. но может ты прав.
Влад.
Скажи , в чем тебе надо выразить задержку:
1. Между повторением одной и той же процедуры или
2. между двумя процедурами (разными)


Alx2   (2002-07-04 16:15:00) [3]

Электричка задерживается.
Электричка ходит по расписанию.
Одно и то же?


qube   (2002-07-04 16:13:00) [4]


> Извращенец ©
> таймер не для торможения, а для выполнения операции через
> какой-то интервал времени

Я в курсе, для чего бывает таймер.
Так о терминологии можно спорить до посинения. Vladislav пишет о какой-то задержке. Как по-твоему, задержка выполнения операции и выполнение операции через интервал времени -- это одно и то же?


Извращенец   (2002-07-04 16:07:00) [5]




> qube © (04.07.02 15:56)
> Задержку чего?
> Таймер использовать не пробовал?

таймер не для торможения, а для выполнения операции через какой-то интервал времени


Alx2   (2002-07-04 16:01:00) [6]

Sleep не может тормозить другие потоки. С помощью Sleep мы сообщаем системе, что в течении стольки-то милисекунд не желаем предоставлять нашему потоку (Thread) процессорное время. А затормозить другие программы (точнее, потоки) может какой-нибудь еще поток твоего процесса, который продолжает работать.


qube   (2002-07-04 15:56:00) [7]

Задержку чего?
Таймер использовать не пробовал?


Vladislav   (2002-07-04 13:52:00) [8]

Вроде так работает.

procedure sleepex(t : integer);
var ATime : TDateTime;
begin
ATime := Now;
while SecondOf(ATime - Now) < t do
begin
Application.ProcessMessages;
Sleep(1);
end;
end;


roadstar   (2002-07-04 13:38:00) [9]

Попробуй так:

procedure sleepex(t : integer);
var time : TDateTime;
begin
time := now;
{по моему была такая константа onesecond, если нет, то определишь количество милисекунд в секунде}
while (time - now) < t*onesecond do
begin
Application.ProcessMessages;
Sleep(1);
end;
end;

Если не получится, то сообщи.


Наверх

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