Страница 3 из 4
Keycode() не работает в IDLE процедуре
Добавлено: 19 Ноябрь 2019, 15:40
kreator
finsoftrz писал(а): 19 Ноябрь 2019, 15:18
И как он это себе представляет? У пользователя могут быть открыты разные отчеты в разных нитях. Взять и вырубить все, пусть потом заново формирует?
Конечно. У нас нет радикально долгих формирований отчётов (в последнее время придерживаемся политики выжать из запроса всё, что можно). У нас часто Эксель используется. Если нужно делать какую-ту хитрую аналитику (и умом не дошли заказать её разработчику), выгружают всё в Эксель, и вперёд, с песней. Вообще, сейчас работодатель капризный пошёл, пытается строит персонал. Частый случай - пользователи, имитируя работу, заходят в программу и всё. Сами сидят в Инете. Зато есть возможность быстро переключиться. Ну и, повторюсь, экономия на лицензиях - хорошее дело.
finsoftrz писал(а): 19 Ноябрь 2019, 15:20
Не все действия пользователя сопровождаются генерацией эвентов.
Возможно, есть. Какие, например?
Keycode() не работает в IDLE процедуре
Добавлено: 19 Ноябрь 2019, 16:01
finsoftrz
Например, в процессе ввода в поле эвенты не генерятся. Или если просто пройти по полям табом, событие accepted не генерится. Или когда некоторые клавиши в списках нажимаются (стрелочки ввверх/вниз внутри страницы или стрелочки вправо/влево).
Keycode() не работает в IDLE процедуре
Добавлено: 19 Ноябрь 2019, 16:05
finsoftrz
Камеры поставьте.

Keycode() не работает в IDLE процедуре
Добавлено: 19 Ноябрь 2019, 16:24
kreator
finsoftrz писал(а): 19 Ноябрь 2019, 16:01
Например, в процессе ввода в поле эвенты не генерятся.
На этот случай - IMM. Но имеет смысл только для больших TEXT контролов.
finsoftrz писал(а): 19 Ноябрь 2019, 16:01
Или если просто пройти по полям табом, событие accepted не генерится. Или когда некоторые клавиши в списках нажимаются (стрелочки ввверх/вниз внутри страницы или стрелочки вправо/влево).
Необязательно EVENT:Accepted проверять. Других ивентов хватает. EVENT:Selected или EVENT:NewSelection. Я в "Электронном Киоске" сбрасываю счётчик времени в методах менеджера окна TakeEvent() и TakeFieldEvent(). Игнорируется только EVENT:Timer.
Keycode() не работает в IDLE процедуре
Добавлено: 19 Ноябрь 2019, 16:45
Yufil
По Idle срабатывает.
Надо переключиться в верхнее окно ( System{ Prop:Active } ) и снять отпечаток ( заголовок и значения полей ). Если оператор что-то ( не обязательно полезное ) делает, отпечаток меняется.
Keycode() не работает в IDLE процедуре
Добавлено: 19 Ноябрь 2019, 16:48
finsoftrz
kreator писал(а): 19 Ноябрь 2019, 16:24finsoftrz писал(а): 19 Ноябрь 2019, 16:01
Например, в процессе ввода в поле эвенты не генерятся.
На этот случай - IMM. Но имеет смысл только для больших TEXT контролов.
Попробуйте в строковом поле что-нибудь набрать. Какой там эвент генерится после нажатия очередного символа? Мне лень перепроверять, на память никакого.
Электронный киоск - это не mdi приложение?
Keycode() не работает в IDLE процедуре
Добавлено: 19 Ноябрь 2019, 17:25
finsoftrz
Yufil писал(а): 19 Ноябрь 2019, 16:45По Idle срабатывает.
Надо переключиться в верхнее окно ( System{ Prop:Active } ) и снять отпечаток ( заголовок и значения полей ). Если оператор что-то ( не обязательно полезное ) делает, отпечаток меняется.
Хорошая идея. На вскидку, должна работать.
Keycode() не работает в IDLE процедуре
Добавлено: 19 Ноябрь 2019, 18:15
kreator
finsoftrz писал(а): 19 Ноябрь 2019, 16:48
Попробуйте в строковом поле что-нибудь набрать. Какой там эвент генерится после нажатия очередного символа? Мне лень перепроверять, на память никакого.
EVENT:NewSelection. С опцией IMM. Для контрола типа TEXT это не работает. С ним засада, надо как-то выкручиваться. В одном месте я опять же в таймере проверяю поле TEXT. Опять же проблема будет только если поле большое, а время не очень.
finsoftrz писал(а): 19 Ноябрь 2019, 16:48
Электронный киоск - это не mdi приложение?
Да, без фрейма.
Keycode() не работает в IDLE процедуре
Добавлено: 19 Ноябрь 2019, 18:54
finsoftrz
Да, точно, EVENT:NewSelection генерится, если IMM у контрола. Я что-то про IMM у окна подумал, для контролов никогда не использовал его.
Keycode() не работает в IDLE процедуре
Добавлено: 19 Ноябрь 2019, 20:14
vic7tar
Так всё-таки, из одного места можно контролировать нажатие клавиш и клики мыши?
Keycode() не работает в IDLE процедуре
Добавлено: 19 Ноябрь 2019, 21:29
porutchik
finsoftrz писал(а): 19 Ноябрь 2019, 18:54для контролов никогда не использовал его
зря, бывает полезен
Keycode() не работает в IDLE процедуре
Добавлено: 20 Ноябрь 2019, 12:45
Губин Игорь
vic7tar писал(а): 19 Ноябрь 2019, 20:14Так всё-таки, из одного места можно контролировать нажатие клавиш и клики мыши?
Всё в ОКНЕ можно контролировать сразу после ACCEPT
Keycode() не работает в IDLE процедуре
Добавлено: 20 Ноябрь 2019, 13:46
vic7tar
Губин Игорь писал(а): 20 Ноябрь 2019, 12:45Всё в ОКНЕ можно контролировать сразу после ACCEPT
Я имел ввиду в рамках запущенного процесса, а не в отдельном окне.
Keycode() не работает в IDLE процедуре
Добавлено: 20 Ноябрь 2019, 13:59
Губин Игорь
vic7tar писал(а): 20 Ноябрь 2019, 13:46Я имел ввиду в рамках запущенного процесса, а не в отдельном окне.
Т.е. в одном месте для всего экзешника? Только субклассить...
ИМХО: из пушки по воробьям
Keycode() не работает в IDLE процедуре
Добавлено: 20 Ноябрь 2019, 14:03
vic7tar
Губин Игорь писал(а): 20 Ноябрь 2019, 13:59Т.е. в одном месте для всего экзешника?
Ну да, а что не реализуемо, без всякого субклассинга?