-Поиск по дневнику

Поиск сообщений в rss_sql_ru_access_programming

 -Подписка по e-mail

 

 -Постоянные читатели

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Создан: 16.03.2006
Записей:
Комментариев:
Написано: 4


Перекрестные ссылки на форму и класс

Понедельник, 28 Мая 2018 г. 16:33 + в цитатник
Есть класс "clsSuperClass"

Option Compare Database

Private WithEvents m_appFrm As Form


Public Sub init(ByRef frm As Form)
    Debug.Print "init"
    Set m_appFrm = frm
    
    m_appFrm.OnUnload = "[Event Procedure]"
    m_appFrm.OnClose = "[Event Procedure]"
End Sub

Public Sub deinit()
    Set m_appFrm = Nothing
End Sub

Private Sub m_appFrm_Unload(Cancel As Integer)
    Debug.Print "m_appFrm_Unload"
End Sub

Private Sub m_appFrm_Close()
    Debug.Print "m_appFrm_Close"
End Sub

Private Sub Class_Initialize()
    Debug.Print "Class_Initialize"
    Set m_appFrm = Nothing
End Sub


Private Sub Class_Terminate()
    Debug.Print "Class_Terminate"
    Set m_appFrm = Nothing
End Sub


Есть форма "frmEx":

Option Compare Database
Option Explicit

Private cls As New clsSuperClass

Private Sub Form_Load()
    cls.init Me
End Sub

Private Sub Form_Unload(Cancel As Integer)
    'Set cls = Nothing
End Sub


Суть в том, что 2010 Аксе код формы в событии Unload(если строчку раскомментировать) - проходит спокойно, тогда как в 97 аксе - вызывает жестокое падение. Тогда как с закомментированной строчкой не проходит событие класса - Terminate.


Почему я храню в формы ссылку на класс: потому что если ее не хранить где-нибудь, класс сразу сделает Terminate.
Почему я храню в классе ссылку а форму: требуется для дальнейшей подписи на события WithEvents


Почему меня это волнует? Таки если не проходит событие Terminate вроде как ссылка где-то должна оставаться, а это плохо.


Пример прикреплен.

http://www.sql.ru/forum/1294501/perekrestnye-ssylki-na-formu-i-klass


 

Добавить комментарий:
Текст комментария: смайлики

Проверка орфографии: (найти ошибки)

Прикрепить картинку:

 Переводить URL в ссылку
 Подписаться на комментарии
 Подписать картинку