Что нового

Второе окно GUI открывается только 1 раз

Grizli

Новичок
Сообщения
48
Репутация
2
не могу понять, почему второе окно GUI открывается только 1 раз
Код:
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <File.au3>
#include <StaticConstants.au3>


$Form1 = GUICreate("пример", 800, 600, 192, 114)
GUISetOnEvent($GUI_EVENT_CLOSE, "CLOSEClicked")
 $about= GUICtrlCreateButton("О программе", 710, 550, 85, 35)
;~  GUICtrlCreateLabel('Сумма сделки ',360, 275, -1, 17)
GUISetState(@SW_SHOW)

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
	Case $GUI_EVENT_CLOSE
	   Exit
				 case $about
			about()

		 EndSwitch

WEnd


Func CLOSEClicked()

			 Exit

EndFunc


Func about()

 $about = GUICreate("О программе", 400, 300, 390, 290)
GUISetState(@SW_DISABLE, $Form1)
 GUISetState(@SW_SHOW, $about)
Do
    Sleep(10)
Until GUIGetMsg() = -3
GUISwitch($Form1)
GUISetState(@SW_ENABLE, $Form1)
GUIDelete( $about)

EndFunc
 

Tempo

AutoIT Гуру
Сообщения
616
Репутация
205
Grizli, в функции объявите переменную $about локально (или используйте другую) иначе дескриптор окна от GUICreate заменит идентификатор кнопки который храниться в глобальной $about

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


$Form1 = GUICreate("пример", 800, 600, 192, 114)
GUISetOnEvent($GUI_EVENT_CLOSE, "CLOSEClicked")
$about = GUICtrlCreateButton("О программе", 710, 550, 85, 35)
;~  GUICtrlCreateLabel('Сумма сделки ',360, 275, -1, 17)
GUISetState(@SW_SHOW)

While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
		Case $about
			about()

	EndSwitch

WEnd


Func CLOSEClicked()

	Exit

EndFunc   ;==>CLOSEClicked


Func about()

	Local $about = GUICreate("О программе", 400, 300, 390, 290)
	GUISetState(@SW_DISABLE, $Form1)
	GUISetState(@SW_SHOW, $about)
	Do
	Until GUIGetMsg() = -3
	GUISwitch($Form1)
	GUISetState(@SW_ENABLE, $Form1)
	GUIDelete($about)

EndFunc   ;==>about
 
Автор
G

Grizli

Новичок
Сообщения
48
Репутация
2
Спасибо, все точно как вы сказали.
 
Верх