Тема: ТАЙМЕР. Как прервать долго выполняющуюся команду
Есть ли компонент Timer и как его можно использовать для регенерации формы во время выполнения долгих команд (explode)
Информационный портал для профессионалов в области САПР
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Форумы CADUser → Программирование → VBA → ТАЙМЕР. Как прервать долго выполняющуюся команду
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Есть ли компонент Timer и как его можно использовать для регенерации формы во время выполнения долгих команд (explode)
1. Create global var
Dim Stop as Boolean
2. Create new form ?wait? with label1 on and code
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = 27 Then
If MsgBox("User Abort !", vbYesNo, "Labeling") = vbYes Then
StopLab = True
End If
End If
End Sub
3. Before loop
Hide your form
Me.Hide
and start new form
wait.Show
4. inside loop
DoEvents
AppActivate "wait"
Wait.Refresh
Wait.Label1 = CStr(i)
If Stop Then
exit for
End If
i = i ? 1
5. After loop
Hide new form
wait.Hide
and start your form
Me.Show
cadhelp
Спасибо. Попробую!!
Если в цикле выполняется много мелких команд это все прекрасно работает.
Но некоторые команды ACAD типа explode, могут выполняться по несколько минут (если сложный чертеж). Соответственно это время форма висит.
А КАК ПРЕРВАТЬ ЭТУ КОМАНДУ???
Помогбы наверно таймер, но его похоже нет.
ПРЕРВАТЬ ЭТУ КОМАНДУ???
Э-Э-Э-Э а ето как?
Вы в автокаде пробовали прервать ету команду?
sendcommand("explode")
может быть долгим процессом (1-2 мин), прервать врядли удасться, да и не нужно. Только как можно в течении этого времени (1-2 мин) обновить экран.
Извиняюсь, меня занесло из лиспа...
Но все-же вопрос: что тебе приходится взрывать? Например, в подобной проблеме с блоками, я перерисовываю их заново, по одному в цикле, тогда регенерацию экрана можно делать - хоть каждый раз... а после удалить обработанный блок.
Приостановить или прервать на время команду (explode) нельзя! Если приходится взрывать сложные солиды - попробуй обновить документ перед командой, вроде слегка побыстрее работает.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Форумы CADUser → Программирование → VBA → ТАЙМЕР. Как прервать долго выполняющуюся команду
Форум работает на PunBB, при поддержке Informer Technologies, Inc