Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] GUIGetMsg(1) - вернуть расширенную информацию о событии в виде массива.

Ответить
Настройки темы
[решено] GUIGetMsg(1) - вернуть расширенную информацию о событии в виде массива.

Аватара для FlatX007

Ветеран


Сообщения: 553
Благодарности: 87

Профиль | Отправить PM | Цитировать


Меня интересует как сделать постоянный цикл...

вот обычный пример : (Если события не происходит то $msg = 0)
Код: Выделить весь код
While 1
    $msg = GUIGetMsg()
    Switch
        Case 0
;~          постоянный цикл
    EndSwitch
WEnd
А как тоже самое сделать тут :
Код: Выделить весь код
#include <GUIConstantsEx.au3>

Global $GUIWidth = 250, $GUIHeight = 250

$ParentWin = GUICreate("Parent GUI", $GUIWidth, $GUIHeight)
$ParentWin_Pos = WinGetPos($ParentWin, "")
    GUISetState(@SW_SHOW)
$ChildWin = GUICreate("Child GUI", $GUIWidth, $GUIHeight, $ParentWin_Pos[0] + 100, $ParentWin_Pos[1] + 100, -1, -1, $ParentWin)
$Button1 = GUICtrlCreateButton("Button1", 96, 88, 75, 25)
    GUISetState(@SW_SHOW)
GUISwitch($ParentWin)

While 1
    $msg = GUIGetMsg(1)
    Select
        Case $msg[1] = $ParentWin
                If $msg[0] = $GUI_EVENT_CLOSE Then
                    Exit
                EndIf

        Case $msg[1] = $ChildWin
                Switch $msg[0]
                    Case 0
                        ConsoleWrite($msg[0] & @crlf) ; Вот тут нужны постояно выполняющиеся действия т.е. вывод в консоль(для примера)

                    Case $Button1
                        MsgBox(64, "Button1", $Button1)
                        Exit
                EndSwitch

        EndSelect
WEnd

Отправлено: 22:32, 11-09-2009

 

Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Цитата FlatX007:
как тоже самое сделать тут »
Что именно нужно сделать, выводить в консоль если нет событии? или только для дочернего окна?
А вообще так не опрашивают события, нужно перевернуть условия в Case:

Код: Выделить весь код
#include <GUIConstantsEx.au3>

Global $GUIWidth = 250, $GUIHeight = 250

$ParentWin = GUICreate("Parent GUI", $GUIWidth, $GUIHeight)
$ParentWin_Pos = WinGetPos($ParentWin, "")
GUISetState(@SW_SHOW)

$ChildWin = GUICreate("Child GUI", $GUIWidth, $GUIHeight, $ParentWin_Pos[0] + 100, $ParentWin_Pos[1] + 100, -1, -1, $ParentWin)
$Button1 = GUICtrlCreateButton("Button1", 96, 88, 75, 25)
GUISetState(@SW_SHOW)
GUISwitch($ParentWin)

While 1
    $msg = GUIGetMsg(1)

    Switch $msg[0]
        Case $GUI_EVENT_CLOSE
            If $msg[1] = $ParentWin Then Exit
        Case $Button1
            MsgBox(64, "Button1", $Button1)
            Exit
        Case Else
            ConsoleWrite($msg[0] & @CRLF) ; Вот тут нужны постояно выполняющиеся действия т.е. вывод в консоль(для примера)
    EndSwitch
WEnd

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community

Это сообщение посчитали полезным следующие участники:

Отправлено: 22:54, 11-09-2009 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для FlatX007

Ветеран


Сообщения: 553
Благодарности: 87

Профиль | Отправить PM | Цитировать


Да - то ,что нужно ...
А почему Case Else ? я так незнал что можно делать.

Код: Выделить весь код
        Case Else
            ConsoleWrite($msg[0] & @CRLF) ; Вот тут нужны постояно выполняющие....

Отправлено: 23:01, 11-09-2009 | #3


Аватара для beve

Старожил


Сообщения: 307
Благодарности: 137

Профиль | Отправить PM | Цитировать


Цитата FlatX007:
А почему Case Else ? я так незнал что можно делать. »
Или в твоем примере заменить Case 0 на Case -11. (но это только для примера, ибо ясно что пример Creator-a есть то что надо...) Не то написал, это связано еще и с активностью мышки...

-------
Не в кількості знань полягає освіта, а в повному розумінні і вмілому використанні того, що знаєш.


Последний раз редактировалось beve, 11-09-2009 в 23:48.

Это сообщение посчитали полезным следующие участники:

Отправлено: 23:37, 11-09-2009 | #4


Аватара для FlatX007

Ветеран


Сообщения: 553
Благодарности: 87

Профиль | Отправить PM | Цитировать


Цитата beve:
Case 0 на Case -11 »
Если так сделать то инфа в консоль выдаётся когда я двигаю мышь ... , забавно

Отправлено: 23:51, 11-09-2009 | #5


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Цитата FlatX007:
инфа в консоль выдаётся когда я двигаю мышь »
-11 это $GUI_EVENT_MOUSEMOVE, но я лично не рекоммендую использовать числа вместо реальных констант, это портит читабельность кода.

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community

Это сообщение посчитали полезным следующие участники:

Отправлено: 00:21, 12-09-2009 | #6



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] GUIGetMsg(1) - вернуть расширенную информацию о событии в виде массива.

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[решено] Каждая папка в виде проводника. Liker Microsoft Windows 2000/XP 3 12-07-2015 05:11
[решено] Как присвоить элементы массива в "перетасованном" виде другому массиву? evg64 AutoIt 3 27-09-2009 14:09
[решено] Вставить текст из массива Не флужу AutoIt 16 19-07-2009 21:49
[решено] PHP | Вывод массива в файл Coutty Вебмастеру 2 29-10-2008 08:48
[решено] Просмотр в виде HTML не работает. GHTD Microsoft Windows 2000/XP 1 22-05-2006 08:58




 
Переход