
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
29.11.2007, 18:21
|
|||
|---|---|---|---|
SetFocus() на немодальную форму |
|||
|
#18+
Привет всем! Голову сломал, решил сюда отписаться. Хочу сделать следующее: поле ввода, если введено значение не из справочника, то по LostFocus() вызывается справочник. Обе формы немодальные. Что происходит - по LostFocus() (Enter нажали) вызывается вторая форма, затем фокс передает фокус на следующий элемент первой формы и ставит ее поверх второй. Насильная передача фокуса на контрол второй формы тоже не помогает. Самплес в архиве (запустить Form2 и нажать Enter). У кого-нибудь мысли есть как обойти? Вторую форму модальную не хочу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
29.11.2007, 18:34
|
|||
|---|---|---|---|
SetFocus() на немодальную форму |
|||
|
#18+
123 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
29.11.2007, 19:00
|
|||
|---|---|---|---|
SetFocus() на немодальную форму |
|||
|
#18+
По нажатию Enter происходит установка в очередь 2 событий: -) Выход из текущего объекта -) Вход в очередной объект, указанный по TabIndex Точнее, каждое из этих событий разбивается на несколько этапов (несколько событий), но для понимания это не важно. Так вот, Вы вешаете свою обработку на событие выхода из объекта. Это событие успешно обрабатывается, а затем начинают обрабатываться события входа в очередной объект. Это сопровождается переводом фокуса на этот объект и, как следствие, выводом формы на передний план. Значит, чтобы решить поставленную задачу надо предотвратить автоматический переход из данного объекта в другой объект. Простейший вариант - это просто запретить выход из текущего объекта при выполнении некоторого условия. Запрет выхода может быть реализован только в событии Text.Valid() вот туда и переносим код с некоторыми дополнениями Код: plaintext 1. 2. 3. 4. 5. Здесь я проверяю на заполненность свойства TAG, но Вы поставьте то условие, по которому надо открывать подчиненную форму. Можно проверять факт существования формы. Более сложный вариант (а может, наборот, более простой) - это кроме основного кода создать еще одноразовый таймер, который после перевода фокуса в очередной объект сделает принудительный перевод фокуса на нужную форму. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
30.11.2007, 07:36
|
|||
|---|---|---|---|
SetFocus() на немодальную форму |
|||
|
#18+
Спасибо всем. С утра надо такими головоломками заниматься :) на свежую голову. Решение такое получилось: Добавил свойство oActivate на форму Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=41&tablet=1&tid=1588470]: |
0ms |
get settings: |
6ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
51ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
32ms |
get tp. blocked users: |
1ms |
| others: | 189ms |
| total: | 308ms |

| 0 / 0 |
