![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Задержка [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;
Если не получится, то сообщи.