powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Программная задержка!
41 сообщений из 41, показаны все 2 страниц
Программная задержка!
    #32295872
Фотография Gyslik.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите пожалуйста, как программно сделать задержку ровно на 4 секунды - очень нужно. Знаю есть такая функция Delay, только она у меня почемуто не хочет работать!
:-)
...
Рейтинг: 0 / 0
Программная задержка!
    #32295875
RVI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Используй таймер.
...
Рейтинг: 0 / 0
Программная задержка!
    #32295886
Фотография Темный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Оффтопик!

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

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

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

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

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

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

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

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

If Timer < t Then t = t - 24 * 3600
...
Рейтинг: 0 / 0
Программная задержка!
    #32296016
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блин, на кусочки порвали
То Until им не понравился,то Timer на Now не догадались заменить
...
Рейтинг: 0 / 0
Программная задержка!
    #32296024
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
А если Now, то какое число будет вместо числа 4?
4 / (24 * 3600) - это сколько по-десятичному?
...
Рейтинг: 0 / 0
Программная задержка!
    #32296027
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Саныч, ну что ж ты как маленький
CDbl(CDate("00:00:04"))
...
Рейтинг: 0 / 0
Программная задержка!
    #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
Программная задержка!
    #32297432
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Dim t As Single
t = Timer
Do Until Timer > t + 4
Loop

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

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

If Timer < t Then t = t - 24 * 3600
...
Рейтинг: 0 / 0
Программная задержка!
    #32297438
Фотография Gyslik.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так вопрос именно в этом и заключался, куда вставить таймер с задержкой 4 сек, чтобы после его выполнения написать
DoCmd.Close
и форма закрылась бы.
Я понимаю, что нельзя его поставить в Timer, а куда его тогда поставить?
...
Рейтинг: 0 / 0
Программная задержка!
    #32297441
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
А после чего надо отсчитывать 4 секунды??? Поскольку уважаемый автор вопроса нам этого не рассказал, то мы этого и не знаем.
...
Рейтинг: 0 / 0
Программная задержка!
    #32297445
Фотография Gyslik.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
После открытия формы - идет задержка в 4 сек, а потом форма закрывается.
(На Open задержку повесить не получается, т.к. Access ждет 4 сек, а потом открыват форму, на Load - тоже, а на какое событие тогда можно повесить - не знаю).
...
Рейтинг: 0 / 0
Программная задержка!
    #32297450
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Я бы повесил на Open, только внутрь цикла вставил бы DoEvents
...
Рейтинг: 0 / 0
Программная задержка!
    #32297455
Фотография Gyslik.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Внутрь какого цикла и куда?
...
Рейтинг: 0 / 0
Программная задержка!
    #32297480
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Dim t As Single
t = Timer
Do Until Timer > t + 4
If Timer < t Then t = t - 24 * 3600
DoEvents
Loop
...
Рейтинг: 0 / 0
Программная задержка!
    #32297498
Фотография Gyslik.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, но это не то!
Форма открывается, ждет 4 сек, а потом запускается Timer (большой).
А мне надо наоборот, чтобы большой Timer выполнялся 4 сек.
:-)
...
Рейтинг: 0 / 0
Программная задержка!
    #32297518
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
А почему большой таймер запускается потом? TimerInterval где-то меняется в программе?

Впрочем, можно и по-другому:

1. В глобальной части модуля формы описываем переменную

Dim t As Single

2. На OnOpen пишем

t = Timer

3. В конце (или начале) большой процедуры таймера добавляем:

If Timer < t Then t = t - 24 * 3600
If Timer > t + 4 Then DoCmd.Close ...
...
Рейтинг: 0 / 0
Программная задержка!
    #32297519
Фотография Нуф-нуф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gyslik. А можешь на пальцах объяснить, что надо сделать?
Ну первое понятно - через 4 секунды после открытия формы закрыть ее.
А Что за "второй" таймер? Что он делает? Вот честно, всё-привсё перечитал
дважды и нифинга не понял... Наверно старость незаметно это... забыл... блин...

Кстати... Gyslik, это, конечно, не моё дело, но если ты не против дружеского совета, то почитай какую-нибудь литературу по поводу "Структурного программирования". У тебя на 40 строк кода 10 операторов "GoTo"! Это не есть хорошо... Честно... Данный оператор очень здорово усложняет чтение кода и расходует машинное время на какие-то ненужные переходы... на сколько я знаю... Профи умудряются обходиться без GoTo вообще! Я пока нет... Обязательно пользую его в... On Error :)
Но это так... Совет...
...
Рейтинг: 0 / 0
Программная задержка!
    #32297538
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
посмотрел код программы....
долго старался понять...
плюнул...
думаю для нормальной работы программы нада делать не задержку, а
изменения кода, чтоб был один гоуто( in error)

советую Gyslik сделать работу над ошибками и предоставить код без гоуту!
...
Рейтинг: 0 / 0
Программная задержка!
    #32297556
Фотография Gyslik.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо за советы, буду пытаться морально расти!
Второй таймер "гоняет" бегущую строку в форме.
Кстати не подскажите, как мне можно оптимизировать второй таймер, т.к. при его выполнении CPU зашкаливает, или может подскажите, как после закрытия формы скинуть цикл второго таймера, т.к. у меня есть подозрение, что после закрытия формы второй таймер продолжает "крутиться" (или я не прав - не знаю).
"Какую-нибудь литературу по поводу Структурного программирования" - с удовольствием почитаю, может быть что-нибудь порекомендуете.
:-)
...
Рейтинг: 0 / 0
Программная задержка!
    #32297563
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Программная задержка!
    #32297569
Фотография Нуф-нуф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ага... Ясно... В этом случае лично я сделал бы так:

1. В момент открытия формы получил бы (например функцией Time) и сохранил в переменной модуля значение текущего времени;
2. По таймеру, который используем для "гона" бегущей строки проверять не больше ли текущее время на 4 секунды того времени, которое мы сохранили при открытии формы. Если больше, то DoCmd.Close, если не больше, то просто выход из обработчика таймера до следующего срабатывания "таймера".
3. Собственно всё...


На счет зашкаливающего процессора... Дело не в самом таймере, а в коде, который выполняется по таймеру. Именно этот код (который, например у тебя "перерисовывает" в новой позиции текст) и загружает процессор. Если система в целом не становится неповоротливой, то забей - ничего страшного...
На счет "продолжает крутиться"... Не... При закрытии формы таймер "умирает".
На счет литературы... Это... Не помню уже что, где и как читал... Ничё посоветовать кроме... www.google.com.ru посоветовать не могу. Сорри

Удачев :)
...
Рейтинг: 0 / 0
Программная задержка!
    #32297573
Фотография Gyslik.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Вадя: спасибо за ссылку, по сайтам прошелся.
2 Нуф-нуф: а Вы не могли бы в моем коде показать, что и как надо исправить. Не знаю, в чем дело, но когда я свою форму с таймером второй раз запускаю, то Access автоматически закрывается. (Первый раз запускаю - все нормально).
...
Рейтинг: 0 / 0
Программная задержка!
    #32297576
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
А мой совет от 18:13 подошел чи ни?
...
Рейтинг: 0 / 0
Программная задержка!
    #32297580
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Программная задержка!
    #32297585
Фотография Gyslik.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
To ВС: Да спасибо, я примерно так и сделал.
To Вадя: я этот пример видел, но я сделал несколько по другому.
...
Рейтинг: 0 / 0
Программная задержка!
    #32297588
Фотография Нуф-нуф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что-нибудь вроде этого (заметь, построено по информации из данного топика! :)

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Private dblOpenTime As Double

Private Sub Form_Open(Cancel As Integer)
  dblOpenTime = Now()
End Sub

Private Sub Form_Timer()
If Now() >= dblOpenTime + CDbl(CDate( "00 : 00 : 04 ")) Then DoCmd.Close
'Код, который "гонит" текст'
'Код, который "гонит" текст'
'Код, который "гонит" текст'
'Код, который "гонит" текст'
'Код, который "гонит" текст'
'тра-ля-ля-ля-ля-ля-ля
End Sub


Вставь это дело в форму, вместо "Код, который "гонит" текст" вставь свой код, убедись, что старые процедуры событий Open и Timer удалены ну и т.п.

На счет самовольного закрытия Акса не знаю... Где-то что-то сделал криво...
...
Рейтинг: 0 / 0
Программная задержка!
    #32297593
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Нуф, а разве то, что ты предлагаешь, не монопенисуально тому, что уже сделано?
...
Рейтинг: 0 / 0
Программная задержка!
    #32297595
Фотография Нуф-нуф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Саныч, если заработает, то нет, а если так и не заработает, то да :) //да сделать можно тремя десятками способов! Лишь бы за-ра-бо-та-ло
...
Рейтинг: 0 / 0
Программная задержка!
    #32297599
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
:^)
...
Рейтинг: 0 / 0
Программная задержка!
    #32297617
Фотография Gyslik.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем большое спасибо!
Завтра еще подумаю, может чего хорошее и надумается!
...
Рейтинг: 0 / 0
Программная задержка!
    #32297673
Фотография Нуф-нуф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Саныч, кажется ты был прав - абсолютно "монопенисуально" :)
...
Рейтинг: 0 / 0
41 сообщений из 41, показаны все 2 страниц
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Программная задержка!
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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