Автор Тема: Второе окно GUI открывается только 1 раз  (Прочитано 188 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Grizli [?]

  • Новичок
  • *
  • Сообщений: 43
  • Репутация: 1
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
не могу понять, почему второе окно GUI открывается только 1 раз
Код: AutoIt [Выделить]
#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

 


Русское сообщество AutoIt

Второе окно GUI открывается только 1 раз
« Отправлен: Июнь 09, 2018, 18:04:03 »

Оффлайн Tempo [?]

  • Продвинутый
  • ***
  • Сообщений: 404
  • Репутация: 93
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Второе окно GUI открывается только 1 раз
« Ответ #1, Отправлен: Июнь 09, 2018, 18:12:23 »
Grizli, в функции объявите переменную $about локально (или используйте другую) иначе дескриптор окна от GUICreate заменит идентификатор кнопки который храниться в глобальной $about

Код: AutoIt [Выделить]
#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


Оффлайн Grizli [?]

  • Новичок
  • *
  • Сообщений: 43

  • Автор темы
  • Репутация: 1
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
Re: Второе окно GUI открывается только 1 раз
« Ответ #2, Отправлен: Июнь 09, 2018, 20:16:53 »
Спасибо, все точно как вы сказали.

Русское сообщество AutoIt

Re: Второе окно GUI открывается только 1 раз
« Ответ #2 Отправлен: Июнь 09, 2018, 20:16:53 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
0 Ответов
1956 Просмотров
Последний ответ Август 25, 2011, 20:15:53
от CreatoR
9 Ответов
4169 Просмотров
Последний ответ Апрель 16, 2014, 13:38:36
от Коршун
1 Ответов
1157 Просмотров
Последний ответ Март 02, 2014, 14:41:54
от MnM
1 Ответов
1301 Просмотров
Последний ответ Январь 16, 2015, 00:01:17
от InnI
2 Ответов
1003 Просмотров
Последний ответ Август 11, 2015, 01:09:00
от gloss
2 Ответов
1706 Просмотров
Последний ответ Май 16, 2016, 21:42:51
от McNamara
1 Ответов
1116 Просмотров
Последний ответ Ноябрь 27, 2016, 00:46:06
от Alofa
7 Ответов
825 Просмотров
Последний ответ Март 19, 2017, 20:23:27
от DOMINANT
2 Ответов
580 Просмотров
Последний ответ Июнь 23, 2017, 12:54:41
от .me
3 Ответов
726 Просмотров
Последний ответ Октябрь 13, 2017, 12:14:29
от zmiter25