Что нового

Изменение надписи на кнопке по кликy

P@S@f

Новичок
Сообщения
44
Репутация
2
Код:
#include <GuiConstantsEx.au3>
GUICreate("ololo",200,200)
$tart=GUICtrlCreateButton("Start",120,50)
$s=1
GUICtrlSetOnEvent ($tart, "changb")
GUISetState(@SW_SHOW)
Func changb()
	If $s=1 Then
		GUICtrlSetData($tart,"Stop")
		$s=0
	EndIf
	If $s=0 Then
		GUICtrlSetData($tart,"Start")
		$s=1
	EndIf
EndFunc

While 1
    $msg = GUIGetMsg(1)
	Select

	Case $msg[0] = $GUI_EVENT_CLOSE
	Exit	
	EndSelect
Wend

Надпись на кнопке не меняется. Подскажите, пожалуйста, в чем может быть проблема?
 

Nik_rus

Python The Snake.
Сообщения
214
Репутация
62
Вы используете 2 режима GUI: GuiGetMsg и SetOnEvent, что ни в коем случае не допускается. Либо одно, либо другое.
 
Автор
P

P@S@f

Новичок
Сообщения
44
Репутация
2
Как тогда можно изменять надпись на кнопке в режиме GuiGetMsg?
 

Nik_rus

Python The Snake.
Сообщения
214
Репутация
62
Код:
While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    Exit    
Case $msg = $tart
If $s=1 Then
        GUICtrlSetData($tart,"Stop")
        $s=0
    Else
GUICtrlSetData($tart,"Start")
        $s=1
    EndIf
    EndSelect
Wend
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Код:
#include <GUIConstantsEx.au3>

$bButton = False
$sStart = 'S T A R T'
$sStop = 'S T O P'
$hForm = GUICreate('Test', 200, 200, -1, -1)
$Label = GUICtrlCreateLabel($sStart, 20, 22, 160, 20)
$Button = GUICtrlCreateButton($sStart, 20, 100, 100, 40)
GUISetState()

While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
		Case $Button
			$bButton = Not $bButton
			If $bButton Then
				GUICtrlSetData($Button, $sStop)
				GUICtrlSetData($Label, $sStop)
			Else
				GUICtrlSetData($Button, $sStart)
				GUICtrlSetData($Label, $sStart)
			EndIf
	EndSwitch
WEnd
 
Верх