Свойство Parent в ActiveX DLL

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
maxV
Новичок
Новичок
 
Сообщения: 34
Зарегистрирован: 12.07.2004 (Пн) 18:26

Свойство Parent в ActiveX DLL

Сообщение maxV » 09.01.2005 (Вс) 10:22

Как можно установить ссылку свойства Parent на объект, в котором был создан экземляр класса Project1.Class1?
Код: Выделить всё
Option Explicit

Private mvarParent As Object

Public Sub Run()
    'ВОПРОС
    'Set Parent = объект, в котором был создан экземпляр класса
End Sub

Public Property Set Parent(ByVal vData As Object)
    If Parent Is Nothing Then
        Set mvarParent = vData
    Else
        MsgBox "Parent уже установлен"
    End If
End Property

Public Property Get Parent() As Object
    Set Parent = mvarParent
End Property

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 09.01.2005 (Вс) 14:30

Set Экземпляр.Parent=Me
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 09.01.2005 (Вс) 20:54

ANDLL писал(а):Set Экземпляр.Parent=Me
...и неубиваемый объект получен :-)
Изображение

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 09.01.2005 (Вс) 20:58

tyomitch писал(а):
ANDLL писал(а):Set Экземпляр.Parent=Me
...и неубиваемый объект получен :-)
К чему такая уверенность?
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 09.01.2005 (Вс) 21:04

Ну так ведь циклическая ссылка :roll:
Изображение

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 09.01.2005 (Вс) 21:25

Где?
Этот код вызывается не в Экземпляре класса, а в каком-то другом классе.
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 09.01.2005 (Вс) 22:05

ANDLL писал(а):Где?
Этот код вызывается не в Экземпляре класса, а в каком-то другом классе.
А, ясно :oops:
Я стормозил.

Но всё равно, maxV-то надо в Экземпляре.
Изображение

maxV
Новичок
Новичок
 
Сообщения: 34
Зарегистрирован: 12.07.2004 (Пн) 18:26

Сообщение maxV » 09.01.2005 (Вс) 22:33

Маленько пропустил. Телефон не работал :(
Дело в том, что Public Sub Run() - глобальный метод класса. Метод является предопределенным запускающим ("входной точкой") OLE-приложения. Нужно определить Parent-объект другого приложения, в котором был создан экземпляр моего класса.
Так, что tyomitch прав.

maxV
Новичок
Новичок
 
Сообщения: 34
Зарегистрирован: 12.07.2004 (Пн) 18:26

Сообщение maxV » 09.01.2005 (Вс) 22:41

Суть такова. Есть готовое приложение. К нему есть возможность подключать свои OLE-приложения.
Т.е. в приложении создается экземляр моего класса и Public Sub Run() в классе является "входной точкой" для запуска.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 09.01.2005 (Вс) 23:30

Может быть, передавать Parent-а параметром в Run?
Изображение

maxV
Новичок
Новичок
 
Сообщения: 34
Зарегистрирован: 12.07.2004 (Пн) 18:26

Сообщение maxV » 09.01.2005 (Вс) 23:54

Я не могу залесть в чужой exe.
Но я уже решил проблему подругому. Мне Parent нужен был для доступа Public методам и свойствам родительского приложения. Еще на раз перечитал "доку" к приложению и осенило.
Суть такова:
к соему проекту через References добавляю ихний exe-файл. И создаю класс с Public медодами и свойствами этого приложения.
Примерно так(код моего OLE-приложения):
Код: Выделить всё
Option Explicit

Public Sub run()
Dim objExe As exe.Class1
    Set objExe = CreateObject("exe.Class1")
    objExe.StatusBar="тра-та"     ' и примерно так доступ к основным объектам родительского приложения
End Sub


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

    TopList  
cron