SurikenTSD
Новичок
- Сообщения
- 67
- Репутация
- 1
То, что написано в справке, ну хоть убей, хоть глаза выколи, не могу понять абсолютно... Искал через поиск, нашел кучу тем, связанных с этой функцией, но ни одна из них не связана с описанием и "употреблением" данной функции...
А меня она волнует ввиду поиска решения проблемы одновременного запуска нескольких функции через разные кнопки gui.
К примеру вот код от madmasles для решения проблемы остановки скрипта кнопкой в этой теме.
Но я в нем решительно ничего не понимаю касательно вышеобозначенной функции.
А меня она волнует ввиду поиска решения проблемы одновременного запуска нескольких функции через разные кнопки gui.
К примеру вот код от madmasles для решения проблемы остановки скрипта кнопкой в этой теме.
Код:
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <MenuConstants.au3>
#include <WindowsConstants.au3>
$fPause = False
$fReturn = False
$hGui = GUICreate('Test', 300, 170)
$nLabel_1 = GUICtrlCreateLabel(StringFormat('%010d', 0), 40, 10, 90, 20)
$nLabel_2 = GUICtrlCreateLabel('Нет паузы', 170, 10, 90, 20)
$nButton_Go = GUICtrlCreateButton('Go', 40, 60, 90, 35)
$nButtonPause = GUICtrlCreateButton('Pause', 170, 60, 90, 35)
$nButtonReturn = GUICtrlCreateButton('Return', 100, 110, 100, 35)
GUISetState()
GUIRegisterMsg($WM_SYSCOMMAND, 'WM_SYSCOMMAND')
GUIRegisterMsg($WM_COMMAND, 'WM_COMMAND')
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $nButton_Go
GUICtrlSetState($nButton_Go, $GUI_DISABLE)
_Go()
GUICtrlSetState($nButton_Go, $GUI_ENABLE)
EndSwitch
WEnd
Func _Go()
For $i = 0 To 10000000
If $fReturn Then
GUICtrlSetData($nLabel_1, StringFormat('%010d', 0))
$fReturn = False
Return
EndIf
GUICtrlSetData($nLabel_1, StringFormat('%010d', $i))
Sleep(10)
While $fPause
If $fReturn Then
GUICtrlSetData($nLabel_1, StringFormat('%010d', 0))
$fReturn = False
Return
EndIf
Sleep(10)
WEnd
Next
EndFunc ;==>_Go
Func WM_SYSCOMMAND($hWnd, $Msg, $wParam, $lParam)
Local $nID = BitAND($wParam, 0xFFFF)
If $nID == $SC_CLOSE Then Exit
Return $GUI_RUNDEFMSG
EndFunc ;==>WM_SYSCOMMAND
Func WM_COMMAND($hWnd, $Msg, $wParam, $lParam)
Local $nNotifyCode = BitShift($wParam, 16)
Local $nID = BitAND($wParam, 0xFFFF)
Switch $nNotifyCode
Case $BN_CLICKED
Switch $nID
Case $nButtonPause
$fPause = Not $fPause
If $fPause Then
GUICtrlSetData($nLabel_2, 'Пауза')
Else
GUICtrlSetData($nLabel_2, 'Нет паузы')
EndIf
Case $nButtonReturn
$fReturn = True
EndSwitch
EndSwitch
Return $GUI_RUNDEFMSG
EndFunc ;==>WM_COMMAND
Но я в нем решительно ничего не понимаю касательно вышеобозначенной функции.