Keycode() не работает в IDLE процедуре

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Keycode() не работает в IDLE процедуре

Сообщение kreator »

finsoftrz писал(а): 19 Ноябрь 2019, 15:18 И как он это себе представляет? У пользователя могут быть открыты разные отчеты в разных нитях. Взять и вырубить все, пусть потом заново формирует?
Конечно. У нас нет радикально долгих формирований отчётов (в последнее время придерживаемся политики выжать из запроса всё, что можно). У нас часто Эксель используется. Если нужно делать какую-ту хитрую аналитику (и умом не дошли заказать её разработчику), выгружают всё в Эксель, и вперёд, с песней. Вообще, сейчас работодатель капризный пошёл, пытается строит персонал. Частый случай - пользователи, имитируя работу, заходят в программу и всё. Сами сидят в Инете. Зато есть возможность быстро переключиться. Ну и, повторюсь, экономия на лицензиях - хорошее дело.
finsoftrz писал(а): 19 Ноябрь 2019, 15:20 Не все действия пользователя сопровождаются генерацией эвентов.
Возможно, есть. Какие, например?
We are hard at work… for you. :)
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4559
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 34 раза

Keycode() не работает в IDLE процедуре

Сообщение finsoftrz »

Например, в процессе ввода в поле эвенты не генерятся. Или если просто пройти по полям табом, событие accepted не генерится. Или когда некоторые клавиши в списках нажимаются (стрелочки ввверх/вниз внутри страницы или стрелочки вправо/влево).
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4559
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 34 раза

Keycode() не работает в IDLE процедуре

Сообщение finsoftrz »

Камеры поставьте. :-)
C6/C11, ШВС, tps/btrieve.
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Keycode() не работает в IDLE процедуре

Сообщение kreator »

finsoftrz писал(а): 19 Ноябрь 2019, 16:01 Например, в процессе ввода в поле эвенты не генерятся.
На этот случай - IMM. Но имеет смысл только для больших TEXT контролов.
finsoftrz писал(а): 19 Ноябрь 2019, 16:01 Или если просто пройти по полям табом, событие accepted не генерится. Или когда некоторые клавиши в списках нажимаются (стрелочки ввверх/вниз внутри страницы или стрелочки вправо/влево).
Необязательно EVENT:Accepted проверять. Других ивентов хватает. EVENT:Selected или EVENT:NewSelection. Я в "Электронном Киоске" сбрасываю счётчик времени в методах менеджера окна TakeEvent() и TakeFieldEvent(). Игнорируется только EVENT:Timer.
We are hard at work… for you. :)
Yufil
Ветеран движения
Сообщения: 1277
Зарегистрирован: 16 Май 2006, 14:34
Контактная информация:

Keycode() не работает в IDLE процедуре

Сообщение Yufil »

По Idle срабатывает.
Надо переключиться в верхнее окно ( System{ Prop:Active } ) и снять отпечаток ( заголовок и значения полей ). Если оператор что-то ( не обязательно полезное ) делает, отпечаток меняется.
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4559
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 34 раза

Keycode() не работает в IDLE процедуре

Сообщение finsoftrz »

kreator писал(а): 19 Ноябрь 2019, 16:24
finsoftrz писал(а): 19 Ноябрь 2019, 16:01 Например, в процессе ввода в поле эвенты не генерятся.
На этот случай - IMM. Но имеет смысл только для больших TEXT контролов.
Попробуйте в строковом поле что-нибудь набрать. Какой там эвент генерится после нажатия очередного символа? Мне лень перепроверять, на память никакого.
Электронный киоск - это не mdi приложение?
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4559
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 34 раза

Keycode() не работает в IDLE процедуре

Сообщение finsoftrz »

Yufil писал(а): 19 Ноябрь 2019, 16:45По Idle срабатывает.
Надо переключиться в верхнее окно ( System{ Prop:Active } ) и снять отпечаток ( заголовок и значения полей ). Если оператор что-то ( не обязательно полезное ) делает, отпечаток меняется.
Хорошая идея. На вскидку, должна работать.
C6/C11, ШВС, tps/btrieve.
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Keycode() не работает в IDLE процедуре

Сообщение kreator »

finsoftrz писал(а): 19 Ноябрь 2019, 16:48 Попробуйте в строковом поле что-нибудь набрать. Какой там эвент генерится после нажатия очередного символа? Мне лень перепроверять, на память никакого.
EVENT:NewSelection. С опцией IMM. Для контрола типа TEXT это не работает. С ним засада, надо как-то выкручиваться. В одном месте я опять же в таймере проверяю поле TEXT. Опять же проблема будет только если поле большое, а время не очень.
finsoftrz писал(а): 19 Ноябрь 2019, 16:48 Электронный киоск - это не mdi приложение?
Да, без фрейма.
We are hard at work… for you. :)
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4559
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 34 раза

Keycode() не работает в IDLE процедуре

Сообщение finsoftrz »

Да, точно, EVENT:NewSelection генерится, если IMM у контрола. Я что-то про IMM у окна подумал, для контролов никогда не использовал его.
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
vic7tar
Ветеран
Сообщения: 365
Зарегистрирован: 09 Февраль 2017, 20:12

Keycode() не работает в IDLE процедуре

Сообщение vic7tar »

Так всё-таки, из одного места можно контролировать нажатие клавиш и клики мыши?
C10, Win10x64
Аватара пользователя
porutchik
Активист
Сообщения: 150
Зарегистрирован: 01 Февраль 2009, 5:35

Keycode() не работает в IDLE процедуре

Сообщение porutchik »

finsoftrz писал(а): 19 Ноябрь 2019, 18:54для контролов никогда не использовал его
зря, бывает полезен
Аватара пользователя
Губин Игорь
✯ Ветеран ✯
Сообщения: 2301
Зарегистрирован: 16 Сентябрь 2005, 16:35
Откуда: Москва
Поблагодарили: 17 раз

Keycode() не работает в IDLE процедуре

Сообщение Губин Игорь »

vic7tar писал(а): 19 Ноябрь 2019, 20:14Так всё-таки, из одного места можно контролировать нажатие клавиш и клики мыши?
Всё в ОКНЕ можно контролировать сразу после ACCEPT
Это я только кажусь дураком! На самом деле я полный идиот!
Аватара пользователя
vic7tar
Ветеран
Сообщения: 365
Зарегистрирован: 09 Февраль 2017, 20:12

Keycode() не работает в IDLE процедуре

Сообщение vic7tar »

Губин Игорь писал(а): 20 Ноябрь 2019, 12:45Всё в ОКНЕ можно контролировать сразу после ACCEPT
Я имел ввиду в рамках запущенного процесса, а не в отдельном окне.
C10, Win10x64
Аватара пользователя
Губин Игорь
✯ Ветеран ✯
Сообщения: 2301
Зарегистрирован: 16 Сентябрь 2005, 16:35
Откуда: Москва
Поблагодарили: 17 раз

Keycode() не работает в IDLE процедуре

Сообщение Губин Игорь »

vic7tar писал(а): 20 Ноябрь 2019, 13:46Я имел ввиду в рамках запущенного процесса, а не в отдельном окне.
Т.е. в одном месте для всего экзешника? Только субклассить...
ИМХО: из пушки по воробьям
Это я только кажусь дураком! На самом деле я полный идиот!
Аватара пользователя
vic7tar
Ветеран
Сообщения: 365
Зарегистрирован: 09 Февраль 2017, 20:12

Keycode() не работает в IDLE процедуре

Сообщение vic7tar »

Губин Игорь писал(а): 20 Ноябрь 2019, 13:59Т.е. в одном месте для всего экзешника?
Ну да, а что не реализуемо, без всякого субклассинга?
C10, Win10x64
Ответить