Пишу вот такой нехитрый код:
Module main
Dim WithEvents t As Timer
Dim a As Integer
Sub main()
t = New Timer
t.Interval = 40
t.Enabled = True
Do
Application.DoEvents()
Loop
End Sub
Sub Tick() Handles t.Tick
MsgBox(a)
a = 4
End Sub
End Module
И вот магия! Значение переменной a всегда равно 0! А если поменять местами msgbox и присвоение значения, то всё получается! (значение 4)
Это у Visual Studio глюки или у меня? плиз хелпъ!
Примечание:
Видимо SKYDOS не знаком - там переменные структурного типа автоматом на дефолт инициалятся. Но я не о том - после выполнения функции msgbox программа перескакивает присвоение, а если сначала присвоить, то всё нормально
Примечание:
пардон, не знаком с VS*
Примечание:
Для умных перефразирую: почему выполнение выскакивает ваще из саба после выполнения msgbox?
Примечание:
а - не локальная переменная, она модульного уровня!
Примечание:
Без переменной: прога не хочет выполнять второй msgbox! И вообще ничего не хочет делать после msgbox. В хелпах ничо про ето нет!
Module main
Dim WithEvents t As Timer
Sub main()
t = New Timer
t.Interval = 100
t.Enabled = True
Do
Application.DoEvents()
Loop
End Sub
Sub Tick() Handles t.Tick
MsgBox("Раз")
MsgBox("Два")
End Sub
End Module
Окошко с сообщением два ваще не вылазит
Примечание:
Wisehorn, умница!
RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.
Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.
Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.