Что нового

Выход из функции по хоткею

Dedullika

Новичок
Сообщения
22
Репутация
0
Моя программа имеет вид
Код:
;создание инферфейса
While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
              Exit
	  Case $Button1
              _myFUNC1()
	   Case $Button2
	    _myFUNC2()
				
    EndSwitch
WEnd
; тексты функций

Очень хотелось бы иметь хоткей для выхода из любой выполняемой функции, в, так сказать, главное меню, то есть в цикл while 1
 

C2H5OH

AutoIT Гуру
Сообщения
1,473
Репутация
333
Код:
HotKeySet("{F10}", "_exit") ; F10 - выход

Func _exit()
	GUIDelete($hGUI)
	Exit
EndFunc

;создание инферфейса $hGUI
While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
              Exit
      Case $Button1
              _myFUNC1()
       Case $Button2
        _myFUNC2()
               
    EndSwitch
WEnd
; тексты функций
 

ggzgamer

Осваивающий
Сообщения
134
Репутация
23
Скорее тут необходим хоткей с переходом на метку установленную в главном цикле While.
В справках по AutoIT правда не встречалось Goto label
 
Автор
D

Dedullika

Новичок
Сообщения
22
Репутация
0
Первый пример кода выходит совсем из программы, где же там выход из функции ? не совсем ясно...
Второй в принципе да, примерно то что хотел, но по сути же из функции не выходит, просто многократно вызывает и в определенный момент перестает вызывать.
Видимо то что я хотел не осуществить без кардинального изменения структуры программы.
 

C2H5OH

AutoIT Гуру
Сообщения
1,473
Репутация
333
Сори, протупил немного, поздно уже было...
Либо ты в функции натыкаешь контрольных точек
Код:
Global $flag = False
HotKeySet("{F10}", "_f_exit")

Func _f_exit()
	$flag = True
EndFunc

Func _myfunc()
	; ...
	If $flag Then Return
	; ...
	If $flag Then Return
	; ...
	If $flag Then Return
	; ...
EndFunc

Либо надо что-то решать.

Вот тут рассматривали похожую схему http://autoit-script.ru/index.php/topic,9318.msg62247.html#msg62247
 
Верх