Тема: Вывод информации на экран

Здравствуйте - я начинающий - помогите советом!! Есть программа на VBA под ACADом. - необходимо на определенном этапе вывести данные на экран в виде окна, но чтобы программа продолжала выполняться далее пока не будет команда на закрытие этого окна.( Что-то типа MsgBox), но он ждет пока не нажмешь ОК. А надо чтобы выполнение продолжалось. Использовал вывод в форму - но пока не закрою форму крестиком, выполнение дальше не идет. Помогите!

Re: Вывод информации на экран

А если при открытие формы передать управление обратно в модуль программы?

Re: Вывод информации на экран

Сори за предыдущий пост, не понял проблемы.
посмотри здесь http://www.sources.ru/vb/vb_multithreading_01.html

Re: Вывод информации на экран

> Александр
вот прям внизу этой страницы есть решение
https://www.caduser.ru/forum/topic18005.html
2Boxa: зачем все усложнять многопоточностью? это рассадник излишних граблей в данном случае.

Re: Вывод информации на экран

В простых случаях можно обойтись без многопоточности. Достаточно построить программу так, чтобы не форма вызывалась из кода программы, а наоборот, программа стартовала из кода формы. Простой пример:
1. Создайте пользовательскую форму и поместите на нее элемент Label. В нем мы будем выводить информацию.
2. Поместите в форму следующий код:
Public Sub DoWork()
    Dim i As Long
    For i = 1 To 100
        'делаем что-то полезное
        ThisDrawing.Utility.Prompt "I'm thinking..."
        DoEvents
    Next
    'продолжаем делать полезное, но теперь выводим информацию в окно
     Me.Show 0
     For i = 1 To 10000
        ThisDrawing.Utility.Prompt "I'm working..."
        Label1.Caption = i
        DoEvents
    Next
    'завершаем работу
    Unload Me
End Sub
3. Помещаем в модуле ThisDrawing код для запуска программы:
Public Sub MyProg()
    UserForm1.DoWork
End Sub
4. Запускаем MyProg
Кстати, благодаря использованию DoEvents можно на формочку поместить интерактивные элементы, например, кнопочку для прерывания процесса.

Re: Вывод информации на экран

> Дмитрий
Спасибо за подсказку, не знал.
Теперь даже в змейку поиграть можно =))))