Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Программная задержка! / 25 сообщений из 41, страница 1 из 2
16.10.2003, 19:26
    #32295872
Gyslik.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программная задержка!
Подскажите пожалуйста, как программно сделать задержку ровно на 4 секунды - очень нужно. Знаю есть такая функция Delay, только она у меня почемуто не хочет работать!
:-)
...
Рейтинг: 0 / 0
16.10.2003, 19:29
    #32295875
RVI
RVI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программная задержка!
Используй таймер.
...
Рейтинг: 0 / 0
16.10.2003, 19:40
    #32295886
Темный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программная задержка!
Оффтопик!

Задержка - какое-то неприятное, женское слово....
...
Рейтинг: 0 / 0
16.10.2003, 21:13
    #32295956
Senin Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программная задержка!
удобно пользоваться API-функцией
Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Sleep 4000 - вызовет задержку на 9 меся... тьфу на 4 секунды :)
...
Рейтинг: 0 / 0
16.10.2003, 22:13
    #32295972
Gyslik.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программная задержка!
Спасибо за функцию Sleep.
To: RVI, а как пользоваться таймером?

P.S. Да, на счет "задержки" нехорошо получилось, надо было топик назвать "как выждать 4 секунды" :-)
...
Рейтинг: 0 / 0
16.10.2003, 22:46
    #32295985
Лифчик
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программная задержка!
Офтопик опять -

главное, чтобы задержка не переросла в воздержание :-)

Про таймер - в форме есть событие Timer, а сразу под ним - интервал срабатывания в милисекундах. При открытии формы выставляешь какой-нибудь флаг, а потом в событии Timer после первого срабатывания снимаешь. Наверняка есть еще способы
...
Рейтинг: 0 / 0
16.10.2003, 22:53
    #32295986
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программная задержка!
Разумеется есть. Например функция Timer
Код: plaintext
1.
2.
3.
4.
Dim t As Single
t = Timer
Do Until Timer < t +  4 
    ' Вот такой вот хитрый цикл '
Loop
...
Рейтинг: 0 / 0
16.10.2003, 23:28
    #32295994
Senin Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программная задержка!
2ЛП
цикл грузит проц, что достаточно неприятно
==
Не много ошибся: Do Until Timer > t + 4
...
Рейтинг: 0 / 0
16.10.2003, 23:29
    #32295995
Odess
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программная задержка!
Ну а про DoEvents внутри цикла забілиН
...
Рейтинг: 0 / 0
16.10.2003, 23:34
    #32295996
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программная задержка!
2 Сенин Виктор
Я думаю проц не сгорит

2 Одесс
А этого по условию задачи не требовалось
...
Рейтинг: 0 / 0
16.10.2003, 23:49
    #32296003
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программная задержка!
2 Лох:

В твоем цикле есть баг, похожий на баг-2000. Если в середину этого цикла влезет полночь, то цикл не закончится никогда.
...
Рейтинг: 0 / 0
17.10.2003, 00:17
    #32296009
Senin Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программная задержка!
Такая маленькая функция ... и столько проблем
К счастью - не моих. Sleep - более чем достаточно
...
Рейтинг: 0 / 0
17.10.2003, 00:25
    #32296015
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программная задержка!
Т.е. у Лоха вообще ошибка. Надо или Until Timer >, или While Timer <.

А кроме того, можно в этот цикл вставить строчку:

If Timer < t Then t = t - 24 * 3600
...
Рейтинг: 0 / 0
17.10.2003, 00:31
    #32296016
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программная задержка!
Блин, на кусочки порвали
То Until им не понравился,то Timer на Now не догадались заменить
...
Рейтинг: 0 / 0
17.10.2003, 01:04
    #32296024
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программная задержка!
А если Now, то какое число будет вместо числа 4?
4 / (24 * 3600) - это сколько по-десятичному?
...
Рейтинг: 0 / 0
17.10.2003, 01:09
    #32296027
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программная задержка!
Саныч, ну что ж ты как маленький
CDbl(CDate("00:00:04"))
...
Рейтинг: 0 / 0
18.10.2003, 14:41
    #32297419
Gyslik.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программная задержка!
Спасибо большое за ответы, но у меня еще в связи с таймером возник вопрос:
У меня на процедуре обработки событий уже стоит один таймер,
Start <= 0 Then
If Start <= N * -1 Then
GoTo ex
Else
If Me![z1].Width - s <= 0 Then GoTo ex
Me![z1].Width = Me![z1].Width - s
GoTo prod
End If
End If
Me![z1].Left = Start
Start = Start - s
GoTo prod
ex: Me![z1].Visible = False
Me![z1].Visible = True
Start = N
Me![z1].Width = begL
prod: If pr = True Then
If Start1 <= 2000 Then GoTo ex1
Me![z2].Left = Start1
Start1 = Start1 - s1
GoTo Finish
Else
GoTo 2
End If
ex1: Me![z2].Visible = False
Me![z2].Visible = True
pr = False
Me![z2].ForeColor = 255
Start1 = 2000
2: If Start1 >= N1 Then GoTo ex2
Me![z2].Left = Start1
Start1 = Start1 + s1
GoTo Finish
ex2: Me![z2].Visible = False
Me![z2].Visible = True
pr = True
Me![z2].ForeColor = 16711680
Start1 = N1
Finish:
Он осуществляет бесконечный цикл,
а мне надо таймером в 4 сек. выждать и закрыть форму, а если еще поставлю на таймер:
Dim t As Single
t = Timer
Do Until Timer > t + 4
Loop
то два таймера работают совместно.
Подскажите пожалуйста, как быть?
...
Рейтинг: 0 / 0
18.10.2003, 15:29
    #32297432
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программная задержка!
Dim t As Single
t = Timer
Do Until Timer > t + 4
Loop

- этот кусок программы сам по себе реализует задержку в 4 секунды. Его не надо вставлять в событие таймера.

Кстати, чтобы избежать проблем с полночью (или полуночью), советую вставить внутрь цикла строчку:

If Timer < t Then t = t - 24 * 3600
...
Рейтинг: 0 / 0
18.10.2003, 15:34
    #32297438
Gyslik.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программная задержка!
Так вопрос именно в этом и заключался, куда вставить таймер с задержкой 4 сек, чтобы после его выполнения написать
DoCmd.Close
и форма закрылась бы.
Я понимаю, что нельзя его поставить в Timer, а куда его тогда поставить?
...
Рейтинг: 0 / 0
18.10.2003, 15:37
    #32297441
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программная задержка!
А после чего надо отсчитывать 4 секунды??? Поскольку уважаемый автор вопроса нам этого не рассказал, то мы этого и не знаем.
...
Рейтинг: 0 / 0
18.10.2003, 15:44
    #32297445
Gyslik.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программная задержка!
После открытия формы - идет задержка в 4 сек, а потом форма закрывается.
(На Open задержку повесить не получается, т.к. Access ждет 4 сек, а потом открыват форму, на Load - тоже, а на какое событие тогда можно повесить - не знаю).
...
Рейтинг: 0 / 0
18.10.2003, 15:50
    #32297450
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программная задержка!
Я бы повесил на Open, только внутрь цикла вставил бы DoEvents
...
Рейтинг: 0 / 0
18.10.2003, 16:00
    #32297455
Gyslik.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программная задержка!
Внутрь какого цикла и куда?
...
Рейтинг: 0 / 0
18.10.2003, 16:57
    #32297480
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программная задержка!
Dim t As Single
t = Timer
Do Until Timer > t + 4
If Timer < t Then t = t - 24 * 3600
DoEvents
Loop
...
Рейтинг: 0 / 0
18.10.2003, 17:30
    #32297498
Gyslik.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программная задержка!
Спасибо, но это не то!
Форма открывается, ждет 4 сек, а потом запускается Timer (большой).
А мне надо наоборот, чтобы большой Timer выполнялся 4 сек.
:-)
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Программная задержка! / 25 сообщений из 41, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]