VB6: Выполнение кода во время работы MsgBox. Как победить?

Узнай цену своей работы

Формулировка задачи:

При работе под IDE при появлении MsgBox выполнение кода полностью останавливается, эвенты собираются в очередь.
При работе в скомпилированном проекте код может выполняться при открытом MsgBox и тогда, если этот код затронет отображение на экране, проект вываливается с различными ошибками типа
"Can't show non-modal form when modal form is displayed"
Как бы так либо заставить код не выполняться, либо сделать MsgBox немодальным (как вариант, можно сделать собственный немодальный MsgBox, с блэкджеком и шлюхами, но как тогда останавливать выполнение хотя бы того кода, который его вызвал)?

Решение задачи: «VB6: Выполнение кода во время работы MsgBox. Как победить?»

textual
Листинг программы
MyMsgbox.Show

frmMyMsgbox:

<font color="blue">Public</font> <font color="blue">Sub</font> Show()
    <font color="blue">Me</font>.Show <font color="00AA00">'можно еще ShowWindow с параметром HWND_TOPMOST, чтобы за другими формами не прятался</font>
    <font color="blue">While</font> <font color="blue">Me</font>.Visible
        DoEvents
    <font color="blue">Wend</font>
    Unload <font color="blue">Me</font>
<font color="blue">End</font> <font color="blue">Sub</font>

<font color="blue">Private</font> <font color="blue">Sub</font> Command1_Click()
    <font color="blue">Me</font>.Hide
<font color="blue">End</font> <font color="blue">Sub</font>

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.833 из 5
Похожие ответы