|
|
|
Анимашка на форме пока выполняется что-нибудь очень долгое.
|
|||
|---|---|---|---|
|
#18+
Можно ли такое сделать? Если можно, то: 1. Как запускать, пока параллельно выполняется длинная(~4минуты) процедура? 2. И где взять эту самую анимашку? Ну или еще что-нибудь, чтоб имитировало процесс. Песочные часы не совсем подходят - когда они долго крутятся пользователь начинает нервничать, хватать всех за рукава, вопить, что программа зависла, истерически жать на клавиши и щелкать мышью на чем попало.. Понятно, что и с анимашкой может зависнуть, но чисто психологически ему спокойнее - на экране мелькает что-то отличное от стандартных песочных часов, значит вроде как работает. Прогрессбар тоже не катит, привязать его не к чему - в процедуре два сохраненных запроса, очень больших и очень медленных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2004, 11:42:50 |
|
||
|
Анимашка на форме пока выполняется что-нибудь очень долгое.
|
|||
|---|---|---|---|
|
#18+
Карлик Нос1. Как запускать, пока параллельно выполняется длинная(~4минуты) процедура? В самой процедуре надо поставить DoEvents - чтобы выполнялось почаще. Карлик Нос2. И где взять эту самую анимашку? На событие таймера можно менять координаты и т.п. чего-нибудь. Карлик НосПрогрессбар тоже не катит, привязать его не к чему - в процедуре два сохраненных запроса, очень больших и очень медленных. Это как раз можно. 1. Пишем функцию, которая принимает один параметр, возвращает его же, но еще и продвигает прогрессбар. 2. В сохраненном запросе в одном из полей ставим обращение к этой функции. Вариант: чтобы не надо было заранее узнавать количество записей, можно вместо прогрессбара выводить на экран надпись: Обработано ... записей. Еще вариант: вместо этой надписи или прогрессбара - тот самый DoEvents. И еще вариант: управление анимашкой из той же функции, а таймер тогда не нужен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2004, 14:00:15 |
|
||
|
Анимашка на форме пока выполняется что-нибудь очень долгое.
|
|||
|---|---|---|---|
|
#18+
Да я с этим DoEvents как-то не очень... Прочел Хелп: "передает управление...", но так и не проникся "зачем он трудовому народу?", видел в чужих кодах этот DoEvents вставлен, но после него никаких переходов нет, стоит он посреди кода, а зачем - не понятно. Может объяснит кто: куда его вставлять? Ну, например, в моем случае - до команды выполнить запрос или еще где? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2004, 19:34:04 |
|
||
|
Анимашка на форме пока выполняется что-нибудь очень долгое.
|
|||
|---|---|---|---|
|
#18+
Допустим, запущено два процесса. И надо, чтобы первый чуть-чуть задержался и дал второму сработать. Вот для этого и служит команда DoEvents. Например, у меня запущена программа, которая делает что-то тяжелое в течение часа. И в этот момент я кликнул мышкой по кнопке. Если в той программе нет ни одного DoEvents, то кнопка сработает тогда, когда кончится час. А если есть, то на нем и сработает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2004, 01:16:27 |
|
||
|
Анимашка на форме пока выполняется что-нибудь очень долгое.
|
|||
|---|---|---|---|
|
#18+
Т.е., если запустить процедуру: Код: plaintext 1. 2. 3. Владимир Саныч управление анимашкой из той же функции, а таймер тогда не нужен тут не ясно: если в процедуре уже произошел переход на строку Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2004, 09:44:12 |
|
||
|
Анимашка на форме пока выполняется что-нибудь очень долгое.
|
|||
|---|---|---|---|
|
#18+
Да нет. DoEvents должен быть не перед "Запрос на час", а внутри и много раз. См. в моем посте от вчера, 14:00 пункты 1 и 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2004, 11:29:19 |
|
||
|
Анимашка на форме пока выполняется что-нибудь очень долгое.
|
|||
|---|---|---|---|
|
#18+
Пример. Есть запрос, который работает долго: update t set a=b, c=d, e=f, g=h Пишем функцию: function xxx(x as variant)as variant doevents xxx=x end function Вставляем ее в запрос: update t set a=xxx(b), c=d, e=f, g=h В результате запрос делает то же, что и делал, но при этом на каждой записи делает doevents. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2004, 11:36:05 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32690824&tid=1671831]: |
0ms |
get settings: |
5ms |
get forum list: |
18ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
22ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
34ms |
get tp. blocked users: |
1ms |
| others: | 232ms |
| total: | 326ms |

| 0 / 0 |
