Автор Тема: Работа с GUI. OnEvent Mode  (Прочитано 2664 раз)

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

Оффлайн DarWiM [?]

  • Продвинутый
  • ***
  • Сообщений: 527
  • Репутация: 89
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.8.1
Работа с GUI. OnEvent Mode
« Создано: Февраль 06, 2012, 20:30:58 »
Всем привет  :laugh:
Вот решил поработать с GUI и напоролся на проблемку.
К примеру данный цикл работает как надо.
Код: AutoIt [Выделить]
While 1
  $msg = GUIGetMsg()
  ...
WEnd

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

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

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

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

Работа с GUI. OnEvent Mode
« Отправлен: Февраль 06, 2012, 20:30:58 »

Оффлайн Viktor1703 [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 1509
  • Репутация: 405
    • Награды
  • Версия AutoIt: 3.3.12.0
Re: Работа с GUI. OnEvent Mode
« Ответ #1, Отправлен: Февраль 06, 2012, 20:38:39 »
А что Вы ещё хотели добиться от Sleep() - он останавливает скрипт на заданное количество "delay", в какую часть цикла Вы ставите Sleep и какое значение для него устанавливаете?

Оффлайн Yashied [?]

  • AutoIt MVP
  • Глобальный модератор
  • *
  • Сообщений: 5349
  • Репутация: 2687
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.x.x
Re: Работа с GUI. OnEvent Mode
« Ответ #2, Отправлен: Февраль 06, 2012, 20:45:31 »
GUIGetMsg() уже включает в себя оптимальную задержку для разгрузки процессора (если вы об этом), и вам не нужно использовать Sleep().

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

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

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


Думай, прежде чем говорить.

Оффлайн DarWiM [?]

  • Продвинутый
  • ***
  • Сообщений: 527

  • Автор темы
  • Репутация: 89
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.8.1
Re: Работа с GUI. OnEvent Mode
« Ответ #3, Отправлен: Февраль 06, 2012, 20:49:54 »
дело в том, что я решил прикрутить к готовому боту окно. а бот время от времени ждёт к примеру по 3 сек

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

Re: Работа с GUI. OnEvent Mode
« Ответ #3 Отправлен: Февраль 06, 2012, 20:49:54 »

Оффлайн Yashied [?]

  • AutoIt MVP
  • Глобальный модератор
  • *
  • Сообщений: 5349
  • Репутация: 2687
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.x.x
Re: Работа с GUI. OnEvent Mode
« Ответ #4, Отправлен: Февраль 06, 2012, 20:59:17 »
Ну, программирование, это не конструктор. Просто прилепить окно не получится. Возможно придется делать изменения во всем коде. Выкладывайте код, возможно кто-нибудь из форумчан поможет.

Оффлайн DarWiM [?]

  • Продвинутый
  • ***
  • Сообщений: 527

  • Автор темы
  • Репутация: 89
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.8.1
Re: Работа с GUI. OnEvent Mode
« Ответ #5, Отправлен: Февраль 06, 2012, 21:03:05 »
Yashied, я понимаю что это не конструктор... Я поработаю над кодом. Я хотел узнать можно ли применить эту функцию.. Узнал, спасибо :)

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

Re: Работа с GUI. OnEvent Mode
« Ответ #5 Отправлен: Февраль 06, 2012, 21:03:05 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
10 Ответов
5434 Просмотров
Последний ответ Ноябрь 12, 2011, 21:31:24
от AZJIO
5 Ответов
4936 Просмотров
Последний ответ Август 16, 2010, 20:53:06
от XpycT
8 Ответов
8158 Просмотров
Последний ответ Сентябрь 27, 2010, 11:42:51
от Garrett
9 Ответов
4242 Просмотров
Последний ответ Февраль 19, 2011, 15:02:06
от Kaster
7 Ответов
3950 Просмотров
Последний ответ Апрель 20, 2011, 20:35:22
от HungryDwarf
3 Ответов
2512 Просмотров
Последний ответ Сентябрь 18, 2011, 15:25:23
от CreatoR
3 Ответов
3432 Просмотров
Последний ответ Ноябрь 19, 2014, 02:12:18
от Skif_off
6 Ответов
3340 Просмотров
Последний ответ Февраль 27, 2012, 23:49:31
от Robocop
3 Ответов
1146 Просмотров
Последний ответ Февраль 01, 2015, 03:27:52
от WR-e-D
40 Ответов
2430 Просмотров
Последний ответ Январь 21, 2017, 17:08:30
от VadimKHL