Что нового

Работа с GUI. OnEvent Mode

DarWiM

Продвинутый
Сообщения
527
Репутация
90
Всем привет :laugh:
Вот решил поработать с GUI и напоролся на проблемку.
К примеру данный цикл работает как надо.
Код:
While 1
  $msg = GUIGetMsg()
  ...
WEnd

Но стоит только добавить в код sleep(), как реакция на действия становится ненормальной.

После поисков в справке, решил, что для таких случаев есть OnEvent Mode (правильно?)

Если да, то подскажите, как оно работает (желательно с наглядными примерами :smile:)
Буду благодарен
 

Viktor1703

AutoIT Гуру
Сообщения
1,535
Репутация
413
А что Вы ещё хотели добиться от Sleep() - он останавливает скрипт на заданное количество "delay", в какую часть цикла Вы ставите Sleep и какое значение для него устанавливаете?
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
GUIGetMsg() уже включает в себя оптимальную задержку для разгрузки процессора (если вы об этом), и вам не нужно использовать Sleep().

Режим OnEvent нужно использовать тогда, когда планируется параллельно обработки сообщений от GUI производить еще какие-нибудь действия, например, поиск файлов на диске. В этом случае, если не использовать режим OnEvent, то во время процесса поиска файлов реакция GUI на действия пользователя будет нулевая. Вы даже не сможете закрыть окно.

Для обычных диалоговых окон целесообразнее использовать режим Loop, т.к. проще. Но можно и комбинировать эти два режима, т.е. переключаться между ними в ходе выполнения программы.

Все примеры есть в справке.
 
Автор
DarWiM

DarWiM

Продвинутый
Сообщения
527
Репутация
90
дело в том, что я решил прикрутить к готовому боту окно. а бот время от времени ждёт к примеру по 3 сек
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
Ну, программирование, это не конструктор. Просто прилепить окно не получится. Возможно придется делать изменения во всем коде. Выкладывайте код, возможно кто-нибудь из форумчан поможет.
 
Автор
DarWiM

DarWiM

Продвинутый
Сообщения
527
Репутация
90
Yashied, я понимаю что это не конструктор... Я поработаю над кодом. Я хотел узнать можно ли применить эту функцию.. Узнал, спасибо :smile:
 
Верх