|
|
|
Программная задержка!
|
|||
|---|---|---|---|
|
#18+
Подскажите пожалуйста, как программно сделать задержку ровно на 4 секунды - очень нужно. Знаю есть такая функция Delay, только она у меня почемуто не хочет работать! :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2003, 19:26 |
|
||
|
Программная задержка!
|
|||
|---|---|---|---|
|
#18+
Используй таймер. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2003, 19:29 |
|
||
|
Программная задержка!
|
|||
|---|---|---|---|
|
#18+
Оффтопик! Задержка - какое-то неприятное, женское слово.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2003, 19:40 |
|
||
|
Программная задержка!
|
|||
|---|---|---|---|
|
#18+
удобно пользоваться API-функцией Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) Sleep 4000 - вызовет задержку на 9 меся... тьфу на 4 секунды :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2003, 21:13 |
|
||
|
Программная задержка!
|
|||
|---|---|---|---|
|
#18+
Спасибо за функцию Sleep. To: RVI, а как пользоваться таймером? P.S. Да, на счет "задержки" нехорошо получилось, надо было топик назвать "как выждать 4 секунды" :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2003, 22:13 |
|
||
|
Программная задержка!
|
|||
|---|---|---|---|
|
#18+
Офтопик опять - главное, чтобы задержка не переросла в воздержание :-) Про таймер - в форме есть событие Timer, а сразу под ним - интервал срабатывания в милисекундах. При открытии формы выставляешь какой-нибудь флаг, а потом в событии Timer после первого срабатывания снимаешь. Наверняка есть еще способы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2003, 22:46 |
|
||
|
Программная задержка!
|
|||
|---|---|---|---|
|
#18+
Разумеется есть. Например функция Timer Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2003, 22:53 |
|
||
|
Программная задержка!
|
|||
|---|---|---|---|
|
#18+
2ЛП цикл грузит проц, что достаточно неприятно == Не много ошибся: Do Until Timer > t + 4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2003, 23:28 |
|
||
|
Программная задержка!
|
|||
|---|---|---|---|
|
#18+
Ну а про DoEvents внутри цикла забілиН ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2003, 23:29 |
|
||
|
Программная задержка!
|
|||
|---|---|---|---|
|
#18+
2 Сенин Виктор Я думаю проц не сгорит 2 Одесс А этого по условию задачи не требовалось ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2003, 23:34 |
|
||
|
Программная задержка!
|
|||
|---|---|---|---|
|
#18+
2 Лох: В твоем цикле есть баг, похожий на баг-2000. Если в середину этого цикла влезет полночь, то цикл не закончится никогда. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2003, 23:49 |
|
||
|
Программная задержка!
|
|||
|---|---|---|---|
|
#18+
Такая маленькая функция ... и столько проблем К счастью - не моих. Sleep - более чем достаточно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2003, 00:17 |
|
||
|
Программная задержка!
|
|||
|---|---|---|---|
|
#18+
Т.е. у Лоха вообще ошибка. Надо или Until Timer >, или While Timer <. А кроме того, можно в этот цикл вставить строчку: If Timer < t Then t = t - 24 * 3600 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2003, 00:25 |
|
||
|
Программная задержка!
|
|||
|---|---|---|---|
|
#18+
Блин, на кусочки порвали То Until им не понравился,то Timer на Now не догадались заменить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2003, 00:31 |
|
||
|
Программная задержка!
|
|||
|---|---|---|---|
|
#18+
А если Now, то какое число будет вместо числа 4? 4 / (24 * 3600) - это сколько по-десятичному? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2003, 01:04 |
|
||
|
Программная задержка!
|
|||
|---|---|---|---|
|
#18+
Саныч, ну что ж ты как маленький CDbl(CDate("00:00:04")) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2003, 01:09 |
|
||
|
Программная задержка!
|
|||
|---|---|---|---|
|
#18+
Спасибо большое за ответы, но у меня еще в связи с таймером возник вопрос: У меня на процедуре обработки событий уже стоит один таймер, 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 то два таймера работают совместно. Подскажите пожалуйста, как быть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2003, 14:41 |
|
||
|
Программная задержка!
|
|||
|---|---|---|---|
|
#18+
Dim t As Single t = Timer Do Until Timer > t + 4 Loop - этот кусок программы сам по себе реализует задержку в 4 секунды. Его не надо вставлять в событие таймера. Кстати, чтобы избежать проблем с полночью (или полуночью), советую вставить внутрь цикла строчку: If Timer < t Then t = t - 24 * 3600 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2003, 15:29 |
|
||
|
Программная задержка!
|
|||
|---|---|---|---|
|
#18+
Так вопрос именно в этом и заключался, куда вставить таймер с задержкой 4 сек, чтобы после его выполнения написать DoCmd.Close и форма закрылась бы. Я понимаю, что нельзя его поставить в Timer, а куда его тогда поставить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2003, 15:34 |
|
||
|
Программная задержка!
|
|||
|---|---|---|---|
|
#18+
А после чего надо отсчитывать 4 секунды??? Поскольку уважаемый автор вопроса нам этого не рассказал, то мы этого и не знаем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2003, 15:37 |
|
||
|
Программная задержка!
|
|||
|---|---|---|---|
|
#18+
После открытия формы - идет задержка в 4 сек, а потом форма закрывается. (На Open задержку повесить не получается, т.к. Access ждет 4 сек, а потом открыват форму, на Load - тоже, а на какое событие тогда можно повесить - не знаю). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2003, 15:44 |
|
||
|
Программная задержка!
|
|||
|---|---|---|---|
|
#18+
Я бы повесил на Open, только внутрь цикла вставил бы DoEvents ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2003, 15:50 |
|
||
|
Программная задержка!
|
|||
|---|---|---|---|
|
#18+
Внутрь какого цикла и куда? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2003, 16:00 |
|
||
|
Программная задержка!
|
|||
|---|---|---|---|
|
#18+
Dim t As Single t = Timer Do Until Timer > t + 4 If Timer < t Then t = t - 24 * 3600 DoEvents Loop ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2003, 16:57 |
|
||
|
Программная задержка!
|
|||
|---|---|---|---|
|
#18+
Спасибо, но это не то! Форма открывается, ждет 4 сек, а потом запускается Timer (большой). А мне надо наоборот, чтобы большой Timer выполнялся 4 сек. :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2003, 17:30 |
|
||
|
Программная задержка!
|
|||
|---|---|---|---|
|
#18+
А почему большой таймер запускается потом? 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 ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2003, 18:13 |
|
||
|
Программная задержка!
|
|||
|---|---|---|---|
|
#18+
Gyslik. А можешь на пальцах объяснить, что надо сделать? Ну первое понятно - через 4 секунды после открытия формы закрыть ее. А Что за "второй" таймер? Что он делает? Вот честно, всё-привсё перечитал дважды и нифинга не понял... Наверно старость незаметно это... забыл... блин... Кстати... Gyslik, это, конечно, не моё дело, но если ты не против дружеского совета, то почитай какую-нибудь литературу по поводу "Структурного программирования". У тебя на 40 строк кода 10 операторов "GoTo"! Это не есть хорошо... Честно... Данный оператор очень здорово усложняет чтение кода и расходует машинное время на какие-то ненужные переходы... на сколько я знаю... Профи умудряются обходиться без GoTo вообще! Я пока нет... Обязательно пользую его в... On Error :) Но это так... Совет... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2003, 18:16 |
|
||
|
Программная задержка!
|
|||
|---|---|---|---|
|
#18+
посмотрел код программы.... долго старался понять... плюнул... думаю для нормальной работы программы нада делать не задержку, а изменения кода, чтоб был один гоуто( in error) советую Gyslik сделать работу над ошибками и предоставить код без гоуту! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2003, 19:23 |
|
||
|
Программная задержка!
|
|||
|---|---|---|---|
|
#18+
Спасибо за советы, буду пытаться морально расти! Второй таймер "гоняет" бегущую строку в форме. Кстати не подскажите, как мне можно оптимизировать второй таймер, т.к. при его выполнении CPU зашкаливает, или может подскажите, как после закрытия формы скинуть цикл второго таймера, т.к. у меня есть подозрение, что после закрытия формы второй таймер продолжает "крутиться" (или я не прав - не знаю). "Какую-нибудь литературу по поводу Структурного программирования" - с удовольствием почитаю, может быть что-нибудь порекомендуете. :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2003, 20:15 |
|
||
|
Программная задержка!
|
|||
|---|---|---|---|
|
#18+
Ага... Ясно... В этом случае лично я сделал бы так: 1. В момент открытия формы получил бы (например функцией Time) и сохранил в переменной модуля значение текущего времени; 2. По таймеру, который используем для "гона" бегущей строки проверять не больше ли текущее время на 4 секунды того времени, которое мы сохранили при открытии формы. Если больше, то DoCmd.Close, если не больше, то просто выход из обработчика таймера до следующего срабатывания "таймера". 3. Собственно всё... На счет зашкаливающего процессора... Дело не в самом таймере, а в коде, который выполняется по таймеру. Именно этот код (который, например у тебя "перерисовывает" в новой позиции текст) и загружает процессор. Если система в целом не становится неповоротливой, то забей - ничего страшного... На счет "продолжает крутиться"... Не... При закрытии формы таймер "умирает". На счет литературы... Это... Не помню уже что, где и как читал... Ничё посоветовать кроме... www.google.com.ru посоветовать не могу. Сорри Удачев :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2003, 21:03 |
|
||
|
Программная задержка!
|
|||
|---|---|---|---|
|
#18+
2 Вадя: спасибо за ссылку, по сайтам прошелся. 2 Нуф-нуф: а Вы не могли бы в моем коде показать, что и как надо исправить. Не знаю, в чем дело, но когда я свою форму с таймером второй раз запускаю, то Access автоматически закрывается. (Первый раз запускаю - все нормально). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2003, 21:11 |
|
||
|
Программная задержка!
|
|||
|---|---|---|---|
|
#18+
А мой совет от 18:13 подошел чи ни? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2003, 21:14 |
|
||
|
Программная задержка!
|
|||
|---|---|---|---|
|
#18+
To ВС: Да спасибо, я примерно так и сделал. To Вадя: я этот пример видел, но я сделал несколько по другому. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2003, 21:53 |
|
||
|
Программная задержка!
|
|||
|---|---|---|---|
|
#18+
Что-нибудь вроде этого (заметь, построено по информации из данного топика! :) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Вставь это дело в форму, вместо "Код, который "гонит" текст" вставь свой код, убедись, что старые процедуры событий Open и Timer удалены ну и т.п. На счет самовольного закрытия Акса не знаю... Где-то что-то сделал криво... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2003, 22:00 |
|
||
|
Программная задержка!
|
|||
|---|---|---|---|
|
#18+
Нуф, а разве то, что ты предлагаешь, не монопенисуально тому, что уже сделано? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2003, 22:10 |
|
||
|
Программная задержка!
|
|||
|---|---|---|---|
|
#18+
Саныч, если заработает, то нет, а если так и не заработает, то да :) //да сделать можно тремя десятками способов! Лишь бы за-ра-бо-та-ло ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2003, 22:20 |
|
||
|
Программная задержка!
|
|||
|---|---|---|---|
|
#18+
:^) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2003, 22:35 |
|
||
|
Программная задержка!
|
|||
|---|---|---|---|
|
#18+
Всем большое спасибо! Завтра еще подумаю, может чего хорошее и надумается! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2003, 01:08 |
|
||
|
|

start [/forum/topic.php?all=1&fid=45&tid=1678791]: |
0ms |
get settings: |
5ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
41ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
| others: | 217ms |
| total: | 349ms |

| 0 / 0 |
