Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: 2003
 
 автор: gant   (20.02.2011 в 14:09)   личное сообщение
 
 

Приветствую всех!
На дисплее открыты две формы. При этом можно мышью делать ту или иную активной.
Верхняя широкая полоса активной формы (не знаю,как она наывается) становится темно-синей, у другого она голубая.
Вопрос: как перехватить это событие экрана, когда форма становится пассивной? Может ли кто подсказать?
Кстати: если открыть на экране два Word документа и переключаться, активирование объектов и изменение цвета происходит таким же образом.

Заранее благодарю.

  Ответить  
 
 автор: Lukas   (20.02.2011 в 14:23)   личное сообщение
 
 

Это событие не экрана, а класса Form.
Можно подписаться на это событие:

Private Sub Form_Deactivate()
    Debug.Print "Deactivate"
End Sub

  Ответить  
 
 автор: gant   (20.02.2011 в 16:32)   личное сообщение
 
 

Lukas, спасибо за быстрый ответ. Но у меня при деактивации Формы сообщение не поступают. Теперь только вечером я смогу сесть снова за PC.

  Ответить  
 
 автор: gant   (20.02.2011 в 21:15)   личное сообщение
 
 

Привет, LUKAS!
Я проверил себя еще раз. Событием Deactivate я пользовался и ранее. И оно (по-моему) наступает лишь когда форма закрывается. В данном случае цвет форм меняется, что говорит по-видимому об активации / деактивации. Но если написать
Private Sub Form_Deactivate()
msgbox "A"
end Sub
то никакого сообщения при кликании мышью по формам не происходит.
Если не согласен, ругайся.
Благодарю.

  Ответить  
 
 автор: Lukas   (20.02.2011 в 21:44)   личное сообщение
13 Кб.
 
 

=>
Загружайте обе формы и бегайте между ними.
Смотрите заголовки.

  Ответить  
 
 автор: gant   (20.02.2011 в 22:16)   личное сообщение
 
 

Но при загрузке форм идет сообщение об ошибке: "при активации возникает проблема, когда Microfoft Office с OLE Serverom и ActiveX элементом коммуницирует". Это примерно такой перевод с немецкого. При этом в заголовке форм ничего нет. Надо будет подумать.

Спасибо, LUKAS.
Надеюсь разобраться.

  Ответить  
 
 автор: Lukas   (20.02.2011 в 22:22)   личное сообщение
 
 

У меня русская локаль, потому немецкая локаль не понимает имена разделов формы.
Попробуйте их переименовать.

  Ответить  
 
 автор: gant   (20.02.2011 в 23:35)   личное сообщение
 
 

Lukas, ваш пример работает отлично. Моя же программа слишком расползлась и неуклюжа.
Кроме того 2я Форма PopUp. Надо разбираться.

Еще раз спасибо.

  Ответить  
 
 автор: gant   (20.02.2011 в 23:58)   личное сообщение
 
 

Эта программа работает в 6 городах, в 2х конторах 5 лет. И все это время я что-то добавлял, подправлял. Иногда я не заглядывал в нее по месяцу и забываю многие вещи.
Для меня она все-же велика: 95 Таблиц, 100 Форм, 120 Reports. Кода не менее 25000 строк.
Но ваш пример сразу навел на мысль отказаться от PopUp. И сработало!
Теперь новые идеи реализуемы.

Спасибо.

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList