Консультация № 55420
14.09.2006, 12:57
0.00 руб.
0 1 1
Уважаемые эксперты
Не судите строго, это первая программа, написанная мною на VBA(до этого использовал только QBasic)
Подскажите пожалуйста с выводом результатов (функция MsgBox)
У меня в приведенном коде получается число, потом надо давить на ОК, а затем выводятся сомножители. Хотелось бы избежать промежуточного давления на ОК, т.е. MsgBox выводила [число=сомножители].
Код прилагается

Приложение:
Sub MNO() ‘Разложение числа на простые сомножители Dim n#, d, tmp9Open "d:\Мои документы\Rezultat.txt" For Append As #2Open "D:\Distrib\QBasic\DATA.bas" For Input As #1Open "D:\Distrib\QBasic\temp.bas" For Output As #3n = InputBox("Введите число")If n = 0 Then Close: MsgBox "КОНЕЦ ПРОГРАММЫ": End Print #2, n; "="; Print #3, n; "=";10Input #1, d20If d > Sqr(n#) Then Print #2, n#: Print #3, n#: Close #3: GoTo 30 If n# / d = Int(n# / d) Then n# = n# / d: Print #3, d; "*";: Print #2, d; "*";: GoTo 20GoTo 1030 ‘Вывод из временного файлаOpen "D:\Distrib\QBasic\temp.bas" For Input As #3Do Input #3, tmp MsgBox tmp, vbOKOnlyLoop Until EOF(3)CloseGoTo 9End Sub

Обсуждение

Неизвестный
14.09.2006, 13:21
общий
это ответ
Здравствуйте, mryc!
Дело в том, что MsgBox является модальным окном, т.о. во время вывода MsgBox выполнение кода приостанавливается.
В вашем случае могу посоветовать, установить на форме, скажем, TextBox установив в параметрах multiline = true, в который вписать построчно выводимые tmp (text1=text1 & tmp & vbnewline). Затем по окончании цикла вывести содержимое text1 на экран.
Удачи.
Форма ответа