Текущий архив: 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.49 MB
Время: 0.006 c