Обработка событий в VB6: инициализация

Вот мой вопрос. У меня VB6 класс FirstClass. В SecondClass я создаю экземпляр FirstClass:

WithEvents fClass as FirstClass

...

Set fClass = New FirstClass

В порядке. Также в SecondClass у меня есть событие Initialize - это какое-то событие объекта FirstClass (насколько я понимаю). Но когда я вставляю точку останова в это событие, оно не срабатывает. Не могли бы вы объяснить мне, почему я не могу поехать на это мероприятие и как в целом работает обработка событий в VB6.
Пожалуйста, задавайте вопросы, если мой английский не подходит для понимания моих мыслей

Обновлять:

Вот свойство от FirstClass:

Разрешение частной собственности IRPCAppMode_Application (RHS как объект)

Const METHOD_NAME As String = "IRPCAppMode_Application" 'DO NOT TRANSLATE
On Error GoTo ErrorHandler
Set mApp = RHS
Set m_objRPCProject = mApp.Project
Set m_objDataSet = m_objRPCProject.CurrentDataSet

RaiseEvent Initialize

...

Я знаю, что объект mApp задается только в этой строке кода, вот и все. Что я не могу понять, так это то, как возникает событие Initialize в SecondClass и как мы можем установить частное свойство вне класса. Вызов инициализации в SecondClass:

Private Sub m_objTestMode_Initialize()
    Const METHOD_NAME As String = "m_objTestMode_Initialize" 'DO NOT TRANSLATE
    On Error GoTo ErrorHandler
    Dim lLoop As Long
    Set mRPCProject = m_objTestMode.Project
    SetupAutoSaveTimer
    SSTab1.Tab = 0
    SSTab2.Tab = 0
    Set m_objToolManager = m_objTestMode.mApp.ToolManager
    Set g_objMonDrives = New clsMonDrives
    Set g_objTrendMonDrives = New clsTrendDrives

....


person Viaches    schedule 04.02.2013    source источник
comment
Можете ли вы добавить больше кода - в частности, метод, которым вы должны обработать событие?   -  person Jon Egerton    schedule 04.02.2013
comment
В этой статье дается хорошее описание системы событий VB6: developer.com/net/vb/article.php/1430631/   -  person Jon Egerton    schedule 04.02.2013
comment
Вы знаете, мне это тяжело) но я пытаюсь объяснить. FirstClass имеет частное свойство Let IRPCAppMode_Application (RHS как объект). в этом свойстве у меня есть строка инициализации RaiseEvent. Итак, я предполагаю, что если я создаю экземпляр FirstClass в SecondClass и имею обработчик Initialize в SecondClass, он срабатывает? Я прав?   -  person Viaches    schedule 04.02.2013
comment
Это должно быть, в зависимости от того, нет ли проблем с вашим кодом. Опубликуйте фрагмент кода, который вызывает событие, а также метод, который вы обрабатываете.   -  person Jon Egerton    schedule 04.02.2013
comment
Здесь вам нужно обратить внимание на то, что для всех классов в VB существует системное событие с именем Initialize, поэтому вы можете спутать этот обработчик событий с тем, который вы пытаетесь поймать. Вам следует обратить внимание на метод fClass_Initialize. Попробуйте установить там точку останова и запустить (F5) и посмотреть, получите ли вы событие.   -  person GTG    schedule 04.02.2013


Ответы (1)


Событие Initialize уже присутствует в вашем классе изначально, поэтому, если вы попытаетесь создать свое, оно будет проигнорировано. Просто возьмите свой код (избавьтесь от всего кода настраиваемого события) и поместите его в существующее событие Initialize, и все будет в порядке.

Событие Initialize запускается всякий раз, когда вы создаете новый экземпляр своего класса. Итак, если вы создаете экземпляр FirstClass с SecondClass, вам нужно, чтобы ваше событие Initialize перешло в FirstClass. Таким образом, он будет запущен, когда вы создадите свой экземпляр FirstClass. Итак, нет, событие Class_Initialize SecondClass не является событием FirstClass, это событие SecondClass.

person BobRodes    schedule 04.02.2013