|
закрывать форму при потере фокуса, кроме
|
|||
---|---|---|---|
#18+
Имеется Форма. Форма закрывается при потере фокуса. Как можно закрывать эту форму при потере фокуса, кроме случая, когда фокус попадает на один контрол другой формы? Всем спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2009, 00:28 |
|
закрывать форму при потере фокуса, кроме
|
|||
---|---|---|---|
#18+
Может изобразить что-то подобное. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2009, 11:14 |
|
закрывать форму при потере фокуса, кроме
|
|||
---|---|---|---|
#18+
AshtonМожет изобразить что-то подобное. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24.
Что-то не очень понятно. Имеются две отдельные открытые формы А и Б. Форма А должна закрываться при потере фокуса, за исключением, если фокус попадет на Контрол1 формы Б. Если фокус попадет на любой другой контрол этой или другой формы, то форма А должна быть закрытой. Как это сделать? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2009, 18:24 |
|
закрывать форму при потере фокуса, кроме
|
|||
---|---|---|---|
#18+
Если фокус попадает на другой контрол этой же формы, то форма остается в фокусе, логично? :) Код формы A. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2009, 10:28 |
|
закрывать форму при потере фокуса, кроме
|
|||
---|---|---|---|
#18+
AshtonМожет я чего-то не понимаю или не правильно обьясняю. Попробую еще раз. Имеются две отдельные открытые формы А и Б. Форма А должна закрываться при потере фокуса. Исключение : если фокус попадет на Контрол1 формы Б. Если фокус попадет на любой другой контрол кроме Контрол1 формы Б, или на любую другую форму (например формы С, которая может быть открыта), то форма А должна быть закрыта. Как это сделать? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2009, 10:58 |
|
закрывать форму при потере фокуса, кроме
|
|||
---|---|---|---|
#18+
lostfocusЕсли фокус попадет на любой другой контрол кроме Контрол1 формы Б, или на любую другую форму (например формы С, которая может быть открыта), то форма А должна быть закрыта. Как это сделать?Наводящий вопрос: Если фокус попадает в форму Б, но сначала на контрол2 (по-вашему, в этот момент форма А должна закрыться), но тут же следом переводится на контрол1 - то каково состояние формы А в этот момент? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2009, 11:47 |
|
закрывать форму при потере фокуса, кроме
|
|||
---|---|---|---|
#18+
непоймучкаlostfocusЕсли фокус попадет на любой другой контрол кроме Контрол1 формы Б, или на любую другую форму (например формы С, которая может быть открыта), то форма А должна быть закрыта. Как это сделать?Наводящий вопрос: Если фокус попадает в форму Б, но сначала на контрол2 (по-вашему, в этот момент форма А должна закрыться), но тут же следом переводится на контрол1 - то каково состояние формы А в этот момент?Если фокус попадает на контрол2, а затем на контрол1, то Форма А должна быть закрыта. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2009, 11:53 |
|
закрывать форму при потере фокуса, кроме
|
|||
---|---|---|---|
#18+
lostfocusЕсли фокус попадает на контрол2, а затем на контрол1, то Форма А должна быть закрыта.Понятно. Попробуйте так (это две процедуры обработки событий в модуле формы А): Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
Изначально в макете формы А TimerInterval=0 ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2009, 12:17 |
|
закрывать форму при потере фокуса, кроме
|
|||
---|---|---|---|
#18+
непоймучкаlostfocusЕсли фокус попадает на контрол2, а затем на контрол1, то Форма А должна быть закрыта.Понятно. Попробуйте так (это две процедуры обработки событий в модуле формы А): Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
Изначально в макете формы А TimerInterval=0 К сожалению, код работает частично. Если кликнуть на любой контрол Формы Б, кроме Контрола1, то форма А закрывается. Это правильно. Но если кликнуть сначала на Контрол1, а затем на любой другой контрол, то Форма А не закроется, а необходимо, чтобы и в этом случае форма А закрылась. Что можно еще придумать? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2009, 23:05 |
|
закрывать форму при потере фокуса, кроме
|
|||
---|---|---|---|
#18+
lostfocus, на событие потери фокуса в этом поле поставьте проверку наличия первой формы и закрывайте ее Код: plaintext 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2009, 23:48 |
|
закрывать форму при потере фокуса, кроме
|
|||
---|---|---|---|
#18+
Может просто уменьшить интервал таймера? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2009, 23:52 |
|
закрывать форму при потере фокуса, кроме
|
|||
---|---|---|---|
#18+
lostfocusНо если кликнуть сначала на Контрол1, а затем на любой другой контрол, то Форма А не закроется, а необходимо, чтобы и в этом случае форма А закрылась. Что можно еще придумать?А чего тут думать, это при переходе из "формы А" надо было извращаться, ибо закрыть ее в тот момент нельзя было. А тут-то все элементарно - в обработке Контрол1_LostFocus закрывайте "форму А" и все. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2009, 00:00 |
|
закрывать форму при потере фокуса, кроме
|
|||
---|---|---|---|
#18+
mds_worldlostfocus, на событие потери фокуса в этом поле поставьте проверку наличия первой формы и закрывайте ее Код: plaintext 1. 2.
Форма Б, на которой находится Контрол1, подчиненная и если я кликну на любой другой контрол в Форме Б, то форма А закрывается, но если я кликну по главной форме, то форма А не закрывается ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2009, 00:08 |
|
закрывать форму при потере фокуса, кроме
|
|||
---|---|---|---|
#18+
lostfocusmds_worldlostfocus, на событие потери фокуса в этом поле поставьте проверку наличия первой формы и закрывайте ее Код: plaintext 1. 2.
Форма Б, на которой находится Контрол1, подчиненная и если я кликну на любой другой контрол в Форме Б, то форма А закрывается, но если я кликну по главной форме, то форма А не закрывается Не совсем так, скорее всего. При первом выходе из поля в главную форму должен сработать LostFocus. А вот в при последующих выходах, если запись в подформе не менялась, то действительно, LostFocus не возникает. В этом случае у поля нет события Exit (Выход) и это правильно, имхо, поскольку в подформе сохраняется положение курсора. А вот почему не срабатывает LostFocus не знаю, это, по-моему нелогично. И что интересно, событие GotFocus возникает всегда, а LostFocus нет. Можно многократно переводить фокус из одной формы в другую и GotFocus исправно срабатывает, а LostFocus только один раз. Впрочем, если перейти на другую запись в подформе, то все начинается сначала. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2009, 09:21 |
|
|
start [/forum/topic.php?fid=45&msg=35771423&tid=1639357]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
32ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
50ms |
get tp. blocked users: |
2ms |
others: | 258ms |
total: | 389ms |
0 / 0 |