Что нового

Зафиксировать нажатие кнопки

Hemul

Новичок
Сообщения
3
Репутация
0
Добрый день!
Создаю кнопку функцией $Start = GUICtrlCreateButton ("Старт", 680, 15, 100), как сделать, что-бы кнопка "залипла"?
У меня должен цикл крутиться, пока ее не отожму.
Спасибо.
 

Zaramot

I ♥ AutoIt
Сообщения
1,160
Репутация
660
Пример:
Код:
Global $var = 0

GUICreate("Form1", 277, 186, 192, 124)
$Button1 = GUICtrlCreateButton("Start", 104, 136, 75, 25)
$Label1 = GUICtrlCreateLabel("00", 112, 40, 100, 60)
GUICtrlSetFont(-1, 36, 800, 0, "Arial")
GUISetState()

AdlibRegister('_Timer', 100)

While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case -3
			Exit
		Case $Button1
			If $var = 0 Then
				$var = 1
				GUICtrlSetData($Button1, 'Stop')
			Else
				$var = 0
				GUICtrlSetData($Button1, 'Start')
			EndIf
	EndSwitch
WEnd

Func _Timer()
    If $var = 1 Then GUICtrlSetData($Label1, GUICtrlRead($Label1) + 1)
EndFunc
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Zaramot [?]
А где залипание кнопки? :smile:

Код:
#include <GUIConstantsEx.au3>
#include <ButtonConstants.au3>
#include <WindowsConstants.au3>

Global $iButton_Hold = 0

$hGUI = GUICreate("Test Script", 300, 200)
$iStart_Button = GUICtrlCreateCheckbox("Старт",  20, 15, 100, 23, BitOr($GUI_SS_DEFAULT_CHECKBOX, $BS_PUSHLIKE))
GUISetState(@SW_SHOW, $hGUI)

While 1
	Switch GUIGetMsg()
		Case $GUI_EVENT_CLOSE
			Exit
		Case $iStart_Button
			If GUICtrlRead($iStart_Button) = $GUI_CHECKED Then
				ConsoleWrite('Кнопка залипла...' & @LF)
				$iButton_Hold = 1
			Else
				ConsoleWrite('Кнопка отлипла.' & @LF)
				$iButton_Hold = 0
			EndIf
	EndSwitch
	
	If $iButton_Hold Then
		;Делаем что то в цикле
	EndIf
WEnd
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
CreatoR,
Так писать меньше. :smile:
Код:
;...
Case $iStart_Button
	$iButton_Hold = BitAND(GUICtrlRead($iStart_Button), $GUI_CHECKED)
	ConsoleWrite($iButton_Hold & @LF)
;...
 
Верх