Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.03.28;
Скачать: CL | DM;

Вниз

Задержка времени   Найти похожие ветки 

 
BMax ©   (2002-03-16 07:12) [0]

Кто-нибудь может подсказать как сделать задержку времени, если на TP это была Dalay, то на Delphi ее нет.


 
Suntechnic ©   (2002-03-16 07:51) [1]

Есть подозрение что это была Delay :)...
о какой задержке речь идёт? Sleep(...) устроит?


 
Bmax ©   (2002-03-16 08:12) [2]

Suntechnic, чего то я не понял с Sleep. Не хочет работать.
(Да, память подводит)


 
MBo ©   (2002-03-16 08:20) [3]

>Не хочет работать
Обоснуй


 
Bmax ©   (2002-03-16 08:26) [4]

MBo, как начинающему программисту это обосновать тяжеловато, выдают ошибку, что такого в помине нет.
Ребята, что больше вариантов кроме Sleep нет?


 
MBo ©   (2002-03-16 08:36) [5]

uses windows
есть?


 
Suntechnic ©   (2002-03-16 08:39) [6]

>выдают ошибку, что такого в помине нет

Чего нет в помине? Ты толком объясни...
uses ... SysUtils ... пробовал?

>больше вариантов кроме Sleep нет?

Вариантов опять же чего? Ты ж не говоришь, что тебе надо, а штатного Нострадамуса здесь не предусмотрено...


 
ХЕХЕХИХИХИ   (2002-03-16 09:13) [7]

Почему можно через цикл сделать почти одно и тоже получится :))))


 
Anatoly Podgoretsky ©   (2002-03-16 09:17) [8]

ХЕХЕХИХИХИ (16.03.02 09:13)
Ни одно и тоже, во первых разогрев процессора, во вторых не повторяемость на разных процессорах.

Bmax © (16.03.02 08:12)
а ты приведи строки USES с и строку вызовом, сказали же не Нострадамусы, ну ошиблись не много не Телепаты.

А если хочешь точный ответ, то ЕСТЬ


 
watcher   (2002-03-16 11:46) [9]

// делает то же что и Sleep() но окно обрабатывает сообщения
uses Windows;
......
var
lTime: cardinal;
begin
lTime := GetTickCount;
while GetTickCount - lTime < 10000 {10 sec} do
Application.ProcessMessages;
end;


 
Anatoly Podgoretsky ©   (2002-03-16 14:35) [10]

И потом удивляемся почему через 50 дней повисла виндоус


 
Alex_LG   (2002-03-16 16:42) [11]

2 Anatoly Podgoretsky © :
по моему то, что предложил watcher - обычная практика? или нет? если нет - не могли бы предложить свой вариант? меня тоже интересует другой вопрос: чем можно заменить Application.ProcessMessages - пишу на API программку, БЕЗ unit Forms


 
Anatoly Podgoretsky ©   (2002-03-16 16:59) [12]

Практика обычная и последствия обычные, зависание данного цикла.
Если пишешь на чистом API то у тебя должен быть цикл обработки сообщений, нужно вызывать PeekMessages, реализацию можешь посмотреть в модуле forms для Application.ProcessMessages,


 
denis_s   (2002-03-16 19:08) [13]

поставь таимер на форму и пиши
sleep(200);



 
Anatoly Podgoretsky ©   (2002-03-16 19:28) [14]

а таймер то зачем


 
bad-md   (2002-03-16 19:39) [15]

-> All:

4 месяца здесь не был...

"Де жа вю...", чем закончили, с того и начали, обсуждалось же уже все 1XXXX раз, причем теми же словами, а если у BMax на TP это была - Dalay, то и под Delphi, соответственно - Slaap.

With best wishes


 
kull   (2002-03-16 20:15) [16]


> Практика обычная и последствия обычные, зависание данного
> цикла.


А в каком месте, извините он зависает?


 
Anatoly Podgoretsky ©   (2002-03-16 20:41) [17]

Не совсем зависания, а просто вместо 10 секунд цикл может растянуться до бесконечности, это когда счетчик близок к максимвльному значению в 2^32
например при значении в 4294957297 вышеприведенный цикл никогда не закончится, так как число 4294967297 невозможно представить.


 
kull   (2002-03-16 20:49) [18]

Теоретически наверное да.
4294957297 ms ~ 8 лет ...


 
Anatoly Podgoretsky ©   (2002-03-16 22:00) [19]

нет всего 49 дней, у меня недавно компьютер пошел уже на третий круг


 
kull   (2002-03-16 22:10) [20]

Не понял? Какие 49 дней? Переведи...


 
Anatoly Podgoretsky ©   (2002-03-16 22:15) [21]

Это ты переведи x/1000/86400


 
kull   (2002-03-16 22:22) [22]

Да действительно...
Похоже я туплю забыл еше 60 минут в часе
звиняйте...


 
Donal_Graeme   (2002-03-17 04:46) [23]

хм.. а можно ли для целей задержки использовать
WaitForSingleObject?


 
Bmax ©   (2002-03-17 07:19) [24]

Я нашел вот что:
Аналог процедуры Delay в Delphi
procedure TForm1.Delay(msecs : Longint);
var
FirstTick : longint;
begin
FirstTick:=GetTickCount;
repeat
Application.ProcessMessages; {для того чтобы не "завесить" Windows}
until GetTickCount-FirstTick >= msecs;
end;


 
Petrovich ©   (2002-03-17 09:06) [25]

Предлагаю по функции текущего времени обрабатывать.
Читаем текущее время
Задаем цикл с While tekVr1-TekVr<Znach do
и в цикле читаем текущее время сравнивая с начальным.
Тогда заморочек с разными процами быть не должно


 
Anatoly Podgoretsky ©   (2002-03-17 09:57) [26]

Заморочек с прочессорами нет, есть заморочки с типами, обычно не учитывают ограниченную разрядность, наглядный пример два выше приведенных примера с GetTickCount



Страницы: 1 вся ветка

Текущий архив: 2002.03.28;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.009 c
14-91062
McSimm
2002-02-14 10:30
2002.03.28
О правиле имен :)


4-91131
ihacker
2002-01-20 17:39
2002.03.28
пиктограмма на панели задач


1-90817
vrRaven
2002-03-09 13:40
2002.03.28
Компилятор Delphi


3-90762
af
2002-03-01 18:04
2002.03.28
Что за ошибка такая и как устанить =Blob already open =?


3-90811
Анатолий
2002-03-04 12:04
2002.03.28
Как использовать метод Refresh в компоненте IBDataSet