|
Блокировка формы вместо модального вызова работает не так, как хотелось бы | ☑ | ||
---|---|---|---|---|
0
RedEchidna
11.10.18
✎
03:43
|
Заменяя модальное открытие формы на немодальное с блокировкой владельца, заметил, что заблокированная форма позволяет перемещаться по ее элементам с помощью клавиши Tab, а также вводить данные в активное поле ввода. Помимо этого, заблокированная форма еще и обрабатывает внешнее событие (в моем случае - сканирование штрих-кода). Это мешает, потому что блокирующая форма может закрываться сканированием штрихкода, который следом отрабатывается в разблокированной форме-владельце (вызывая открытие того же блокирующего окна). Решений в голову приходит много, но хотелось бы обойтись без костылей и сделать код универсальным. Возможно ли сделать режим блокировки... более блокирующим, что ли. Или такое поведение таким и задумывалось?
8.3.13, управляемые формы. |
|||
1
Sapiens_bru
11.10.18
✎
06:28
|
Блокировать весь интерфейс - более блокирующее, чем блокировать окно владельца
|
|||
2
RomaH
naïve
11.10.18
✎
06:50
|
(0) и даже ВводДоступен() истину возвращает?
|
|||
3
RedEchidna
12.10.18
✎
03:15
|
(1) Может быть, но обе проблемы все равно не решаются.
(2) На время блокировки нет, но на момент считывания штрих-кода (который закрывает блокирующее окно) формой-владельцем - да. |
|||
4
cons24
12.10.18
✎
11:22
|
(0) пишите на [email protected] пусть доделают. Думаю всем лучше будет.
|
|||
5
Fragster
гуру
12.10.18
✎
11:48
|
> заблокированная форма позволяет перемещаться по ее элементам с помощью клавиши Tab
похоже на баг. у меня не наблюдается. это веб клиент? (3) >На время блокировки нет так ведь в типовых такая проверка есть при получении события (по крайней мере была раньше) |
|||
6
RedEchidna
15.10.18
✎
03:52
|
(5) Тонкий клиент.
ВводДоступен() отлично работает, когда нужно сканировать именно в сфокусированную форму, и на время блокировки формы тоже работает правильно. Проблема в следующем: сканируем в основной форме штрих-код, который вызывает блокирующую форму с предупреждением. Есть штрих-код, закрывающий эту блокирующую форму (подразумевается работа на приличном расстоянии от компьютера). При этом сначала блокирующая форма отрабатывает штрих-код, закрывается, затем заблокированная форма разблокируется, на ней становится доступен ввод, и лишь затем уже она отрабатывает этот же штрих-код (вызывая все ту же блокирующую форму). Ну и напрягает, что по заблокированной форме можно табом перемещаться, даже вводить данные. |
|||
7
RomaH
naïve
15.10.18
✎
07:20
|
(6) логично, код не может работать параллельно
поэтому сначала в одном месте, потом в другом обработка ожидания - наше все |
|||
8
Fragster
гуру
15.10.18
✎
09:16
|
(6) закрывай через однократную обработку ожидания на 0.1 секунды, а лучше вообще сделать все в одной форме (хотя не всегда получается, да)
|
|||
9
RedEchidna
15.10.18
✎
11:51
|
(7) (8) Да понятное дело, там можно много чего придумать и помимо обработки ожидания. И с последовательным выполнением кода тоже понятно, конечно. Но все равно странно, что внешнее событие в основной форме отрабатывается, ведь на момент сканирования она заблокирована.
|
|||
10
Fragster
гуру
15.10.18
✎
12:15
|
(9) нет, она работает, например её обработчики ожидания и оповещения продолжают выполняться. а вот как ты по ней табом передвигаешься - я не понимаю. по идее весь ввод до нее не доходит.
|
|||
11
RedEchidna
18.10.18
✎
03:17
|
(10) Уж не знаю, как я в тот раз проверял, но сейчас перепроверил доступные варианты: при блокировке окна владельца табом можно перемещаться по заблокированной форме (и вводить данные), а при блокировании всего интерфейса - нет. Так что (1) был прав.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |