Мишаня
Новичок
- Сообщения
- 4
- Репутация
- 0
Есть функция, которая выполняется пока флаг $Flag = True.
Есть GUI: кнопка старт, кнопка стоп. соответственно по нажатии кнопки Старт выполняется функция.
Для привязки событий к GUI я использую:
Естественно, этот код не работает, так как при нажатии кнопка Старт, исполняющий поток занят только выполнением функции, и хоть ты 1000 раз кликни на "Стоп", процедура только добавится в очередь ожидания и Flag никогда не станет False :(
Решение.
Предлагаю своё решение, работает, но мне не нравиться...
Вместо кнопок Старт и Стоп сделать Радио-группу с двумя положениями "старт" и "стоп". Тогда в цикле будет другое условие
Не нравиться решение просто тем, что Я ХОЧУ КНОПОЧКИ, а не радио группу.
Есть GUI: кнопка старт, кнопка стоп. соответственно по нажатии кнопки Старт выполняется функция.
Для привязки событий к GUI я использую:
Код:
GUICtrlSetOnEvent($StartBtn,"StartBtn")
GUICtrlSetOnEvent($StopBtn,"StopBtn")
Func StartBtn()
While $Flag
; работа
WEnd
EndFunc
func StopBtn()
$Flag = False
EndFunc
Естественно, этот код не работает, так как при нажатии кнопка Старт, исполняющий поток занят только выполнением функции, и хоть ты 1000 раз кликни на "Стоп", процедура только добавится в очередь ожидания и Flag никогда не станет False :(
Решение.
Предлагаю своё решение, работает, но мне не нравиться...
Вместо кнопок Старт и Стоп сделать Радио-группу с двумя положениями "старт" и "стоп". Тогда в цикле будет другое условие
Код:
While GUICtrlGetState($STOP_RADIO) = $GUI_CHECKED
; работа
WEnd
Не нравиться решение просто тем, что Я ХОЧУ КНОПОЧКИ, а не радио группу.