Страница: 1 |
Как остановить выполнение цикла на ВБ6,0 У меня при нажатии на 1 кнопку запускается цикл (точнее запускается функция но в этой функции находится цикл ) А при нажатии на 2 кнопку должен останавливатся цикл .... и должны выполнятся те действия которые выполняются после окончания цикла ... Вот сама функция с цыклом: Function FindOpenPorts() Если привести полняй код с кнопками то это будет выглядить так: Private Sub cmdStart_Click() Private Sub cmdStop_Click() Function FindOpenPorts() Вообщем если что не поняли то тоды задавайте вопрос :))
Лень разбираться с твоим кодом. По-моему тут без потоков не обойтись. Как же он сгенерит ошибку, если во время выполнения цикла события не обрабатываются. 1. Пишешь переменную типа Boolean (Stopped) 2. Для кнопки cmdStop: Stopped = True 3. В цикле (в конце или в начале) пишешь if Stopped = True Then Exit For Вот так JBit большое спасибо ) всё получилось .... Страница: 1 |
Вопрос: Остановка цикла .....
Добавлено: 16.03.03 17:59
Автор вопроса: V!RU$™ | Web-сайт:
cmdStop.Enabled = True
cmdStart.Enabled = False
pbFind.Max = txtPort2.Text
pbFind.Min = txtPort1.Text
lstOpenPorts.Clear
For PortValue = txtPort1.Text To txtPort2.Text
wsLock.Close
pbFind.Value = PortValue
Timer1.Interval = "100"
wsLock.Connect wsLock.LocalIP, PortValue
DoEvents
If PortValue = txtPort2.Text Then
Timer1.Interval = 0
cmdStop_Click
End If
Next
End Function
If txtPort1.Text >= txtPort2.Text Then
Title = "Massaga - Port Scanner: Ошибка"
Style = vbOKOnly + vbCritical + vbDefaultButton1
Msg = MsgErrorPort
Response = MsgBox(Msg, Style, Title)
Else
If txtPort2.Text > "65000" Then
Title = "Massaga - Port Scanner: Ошибка"
Style = vbOKOnly + vbCritical + vbDefaultButton1
Msg = MsgErrorPort
Response = MsgBox(Msg, Style, Title)
Else
FindOpenPorts
End If
End If
End Sub
cmdStop.Enabled = False
cmdStart.Enabled = True
' что надо вставить чтобы завершить цикл и выполнить 'дальнейшие действия!
End Sub
cmdStop.Enabled = True
cmdStart.Enabled = False
pbFind.Max = txtPort2.Text
pbFind.Min = txtPort1.Text
lstOpenPorts.Clear
For PortValue = txtPort1.Text To txtPort2.Text
wsLock.Close
pbFind.Value = PortValue
Timer1.Interval = "100"
wsLock.Connect wsLock.LocalIP, PortValue
DoEvents
If PortValue = txtPort2.Text Then
Timer1.Interval = 0
cmdStop_Click
End If
Next
End Function
Ответы
Всего ответов: 5
Номер ответа: 1
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #1
Добавлено: 16.03.03 18:07
Номер ответа: 2
Автор ответа:
muadib
ICQ: 161737977
Вопросов: 3
Ответов: 9
Профиль | | #2
Добавлено: 16.03.03 18:31
Из цикла выходить генерируя програмно ошибку, а в обработчик ошибок продолжение проги
Номер ответа: 3
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #3
Добавлено: 16.03.03 20:42
Номер ответа: 4
Автор ответа:
JBit
Вопросов: 0
Ответов: 8
Профиль | | #4
Добавлено: 16.03.03 23:39
Номер ответа: 5
Автор ответа:
V!RU$™
ICQ: 132309822
Вопросов: 24
Ответов: 54
Web-сайт:
Профиль | | #5
Добавлено: 17.03.03 14:23