Автор Тема: [Элементы GUI] Input-поля не возвращаются в GUIgetmsg() по нажатию Enter  (Прочитано 1605 раз)

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

Оффлайн Core2Duo76 [?]

  • Cтажер AutoIT
  • Новичок
  • *
  • Сообщений: 58
  • Репутация: 1
    • Награды
  • Версия AutoIt: 3.3.12.0
Кодил, кодил. Делал поиск по БД SQLite, было поле ввода типа input  с поисковым запросом. При вводе запроса и нажатии Enter GuiGetmsg возвращало ID поля ввода, отрабатывалась функция, все шло по делу. Отработав все ошибки, допиливал остальной код, а когда уже все готово я обнаружил что поиск не работает. Соседнее поле тоже отвалилось. Для теста добавил такой код в loop


Код: AutoIt [Выделить]
$msg=GuigetMsg()
if $msg=$search_request_field then msgbox(0,'','Search requested')


добавление такого кода вызывает Msgbox вызывает сообщение при нажатии enter  в поле ввода во всех программках, кроме той, которую я  описывал выше. Как такое может быть? в одном  коде не работает, в остальных - нет.

Для справки - стили полей ввода не выставлял (по умолчанию),  в GUI использую messageLoop

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


Оффлайн alex33 [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 1431
  • Репутация: 178
  • Пол: Мужской
    • alekssamos ВКонтакте
    • Награды
  • Версия AutoIt: 3.3.12.0
Установите
Код: AutoIt [Выделить]
на кнопку enter и всё...

Примерно так:
Код: AutoIt [Выделить]
;...
Local $aKey[1][2] = [["{enter}", $dummy1]]
GUISetAccelerators($aKey)

;...
    Switch GUIGetMsg()
        ;...
        Case $dummy1
            MsgBox(0, "", "нажат enter")
            ;...
 


Оффлайн Core2Duo76 [?]

  • Cтажер AutoIT
  • Новичок
  • *
  • Сообщений: 58

  • Автор темы
  • Репутация: 1
    • Награды
  • Версия AutoIt: 3.3.12.0
 А если  без этого? Просто раньше работало а теперь нет. Хотелось бы узнать возможные причины сбоя.

Обновка: в примере использовая из справки  у меня не срабатывают горячие клавиши. Печаль совсем....
« Последнее редактирование: Август 18, 2014, 14:57:54 от Core2Duo76 »

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


Онлайн InnI [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 4099
  • Репутация: 1086
    • Награды
  • Версия AutoIt: 3.3.14.0
Core2Duo76  [?]
Цитировать
возможные причины сбоя
От Input сообщение приходит в двух случаях: нажатие Enter или потеря фокуса ввода. И в обоих случаях обязательно предварительно должны быть какие-то изменения.
Например, вы ввели 123 и нажали Enter - GuiGetMsg() отловила сообщение. Если вы теперь снова нажмёте Enter, то сообщение не отправится, т.к. изменений ещё не было. А если вы сделаете изменение (например, удалите цифру) и просто перейдёте к другому элементу, то GuiGetMsg() опять поймает сообщение, хотя Enter не нажимался.

Оффлайн Core2Duo76 [?]

  • Cтажер AutoIT
  • Новичок
  • *
  • Сообщений: 58

  • Автор темы
  • Репутация: 1
    • Награды
  • Версия AutoIt: 3.3.12.0
Именно так я и понял, что чтото не так работает. Иртересно, как я так умудрился.... Обновил и скайт и AutoIt - ничего нового


Добавлено: Август 19, 2014, 07:06:01
Стиль Multiline отменил - все заработало. То есть тема решена, но как?)
« Последнее редактирование: Август 19, 2014, 07:06:01 от Core2Duo76, Причина: Объединение сообщений »

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


 

Похожие темы

  Тема / Автор Ответов Последний ответ
2 Ответов
4293 Просмотров
Последний ответ Октябрь 18, 2009, 17:11:37
от CreatoR
0 Ответов
2591 Просмотров
Последний ответ Июнь 25, 2012, 16:44:48
от admirko
0 Ответов
1613 Просмотров
Последний ответ Июнь 25, 2012, 22:58:03
от madmasles
3 Ответов
2784 Просмотров
Последний ответ Декабрь 27, 2012, 11:31:14
от ---Zak---
0 Ответов
1450 Просмотров
Последний ответ Декабрь 28, 2012, 15:10:47
от CreatoR
7 Ответов
5376 Просмотров
Последний ответ Сентябрь 18, 2013, 18:05:12
от InnI
2 Ответов
1914 Просмотров
Последний ответ Май 04, 2016, 06:58:41
от AZJIO
3 Ответов
1601 Просмотров
Последний ответ Май 18, 2017, 11:06:23
от ra4o
5 Ответов
1366 Просмотров
Последний ответ Декабрь 19, 2017, 20:17:46
от Tempo
0 Ответов
482 Просмотров
Последний ответ Январь 30, 2019, 16:53:50
от Bingo888