Дело вот в чем.
Прога связывается с .dll-кой
По циклу вызывается функция из этой .dll
Функия работает с текстовым файлом и это может занять достаточно времени
Так вот, когда эта функция работает, сама прога как бы подвисает, ProgressBar не двигается и в заголовке появляется надпись "Не отвечает"
Если дождаться до конца выполнения цикла то вся работа делается успешно, но ясно что такое подвисание не приемлемо для пользователя
Пробовал DoEvents:
- Код: Выделить всё
for i = 0 to filescount
myfunc(i)
progressbar.value = progressbar.value + 1
DoEvents
Next
Не помогает
Еще пробовал заменить цикл For на Timer c интервалом 100 мс к примеру (в MSDN прочитал)
- Код: Выделить всё
Sub Timer1_Timer()
Static i As Long
myfunc (i)
ProgressBar1.Value = ProgressBar1.Value + 1
DoEvents
i = i + 1
If filescount = i Then
Timer1.Enabled = False
Exit Sub
End If
End Sub
Желаемого эффекта тоже не дает