powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Как получить ссылку на существующифй экземпляр класса?
11 сообщений из 11, страница 1 из 1
Как получить ссылку на существующифй экземпляр класса?
    #33782341
Витал
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Суть вопроса.
Создал 2 класса в одной и той же книге Ексель (2003). Упрощенно: cls1 и cls2.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
cls1
Public wbk as Workbook

Private Sub Class_Initialize()
   Set wbk = Workbooks.Open("C:\Temp\fff.xls")
End Sub

cls2
Public c1 as cls1

Private Sub Class_Initialize()
On error goto e
   Set c1 = GetObject(,"cls1") 'здесь то и не хочет работать
Exit Sub
e:
   Set c1 = New cls1
End Sub
Мне не надо при создании каждого экземпляра cls2 заново инициализировать cls1. Но как на него сослаться? Пока не получается.
...
Рейтинг: 0 / 0
Как получить ссылку на существующифй экземпляр класса?
    #33784054
ТожеВитал
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вроде работает.
...
Рейтинг: 0 / 0
Как получить ссылку на существующифй экземпляр класса?
    #33784486
Витал
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Собственно вот так выглядят правильно условия задачи.
...
Рейтинг: 0 / 0
Как получить ссылку на существующифй экземпляр класса?
    #33784487
Витал
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блин! Отвалилось вложение.
...
Рейтинг: 0 / 0
Как получить ссылку на существующифй экземпляр класса?
    #33791882
хво
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ВиталМне не надо при создании каждого экземпляра cls2 заново инициализировать cls1. Но как на него сослаться? Пока не получается.

Так создай в глобальном модуле
Public с1 as cls1
...
set c1=new cls1

и уже в cls2 работай c c1, которая ранее уже была проинициализирована
...
Рейтинг: 0 / 0
Как получить ссылку на существующифй экземпляр класса?
    #33791960
Витал
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хво ВиталМне не надо при создании каждого экземпляра cls2 заново инициализировать cls1. Но как на него сослаться? Пока не получается.

Так создай в глобальном модуле
Public с1 as cls1
...
set c1=new cls1

и уже в cls2 работай c c1, которая ранее уже была проинициализирована

Так то я и сделал. Но хотел избежать отдельной инициализации первого класса. Так получается, что надо помнить о том, что перед использованием второго класса обязательно необходимо создать экземпляр первого и передать во второй ссылку на него.
...
Рейтинг: 0 / 0
Как получить ссылку на существующифй экземпляр класса?
    #33793752
хво
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Витал хво ВиталМне не надо при создании каждого экземпляра cls2 заново инициализировать cls1. Но как на него сослаться? Пока не получается.

Так создай в глобальном модуле
Public с1 as cls1
...
set c1=new cls1

и уже в cls2 работай c c1, которая ранее уже была проинициализирована

Так то я и сделал. Но хотел избежать отдельной инициализации первого класса. Так получается, что надо помнить о том, что перед использованием второго класса обязательно необходимо создать экземпляр первого и передать во второй ссылку на него.

ну так и инициализируй в классе глобальную перемнную и проверяй ее на Nothing
...
Рейтинг: 0 / 0
Как получить ссылку на существующифй экземпляр класса?
    #33796869
Витал
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хво Витал хво ВиталМне не надо при создании каждого экземпляра cls2 заново инициализировать cls1. Но как на него сослаться? Пока не получается.

Так создай в глобальном модуле
Public с1 as cls1
...
set c1=new cls1

и уже в cls2 работай c c1, которая ранее уже была проинициализирована

Так то я и сделал. Но хотел избежать отдельной инициализации первого класса. Так получается, что надо помнить о том, что перед использованием второго класса обязательно необходимо создать экземпляр первого и передать во второй ссылку на него.

ну так и инициализируй в классе глобальную перемнную и проверяй ее на Nothing

Блин! "Что в лоб, что по-лбу". Хотелось, по теме топика, чтобы инициализация первого класса осуществлялась только во втором и нигде больше. Чтобы НЕ ТРЕБОВАЛОСЬ в любых других модулях (кроме модуля второго класса) создавать экземпляр первого. ТАК КАК ЗДЕСЬ РЕКОМЕНДУЕТСЯ Я УЖЕ РЕАЛИЗОВАЛ. Но мне не кажется это красивым решением.
...
Рейтинг: 0 / 0
Как получить ссылку на существующифй экземпляр класса?
    #33796901
Витал
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вероятно, для реализации того, что я хотел, необходим еще один класс-родитель, который содержал бы коллекцию загруженных классов наподобии Workbooks & Workbook.
...
Рейтинг: 0 / 0
Как получить ссылку на существующифй экземпляр класса?
    #33801666
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВиталТАК КАК ЗДЕСЬ РЕКОМЕНДУЕТСЯ Я УЖЕ РЕАЛИЗОВАЛ. Но мне не кажется это красивым решением.

чего кричать-то? %-)
Если есть объект, который неизвестно когда будет проинициализирован, то надо при обращении к нему смотреть на его Nothing - и либо инициализировать либо рабоnать далее - чего тут некрасивого? Проверка? Оператор IF?
...
Рейтинг: 0 / 0
Как получить ссылку на существующифй экземпляр класса?
    #33818809
Витал
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Senin Viktor ВиталТАК КАК ЗДЕСЬ РЕКОМЕНДУЕТСЯ Я УЖЕ РЕАЛИЗОВАЛ. Но мне не кажется это красивым решением.

чего кричать-то? %-)
Если есть объект, который неизвестно когда будет проинициализирован, то надо при обращении к нему смотреть на его Nothing - и либо инициализировать либо рабоnать далее - чего тут некрасивого? Проверка? Оператор IF?

Извини, Виктор, не понял рекомендации. Еще раз тогда из-за чего весь сыр-бор.
Сейчас.
-Создаю экземпляр класса 1
-Создаю экземпляр класса 2
-Передаю объекту 2 ссылку на объект 1
-Работаю со свойствами и методами объекта 2

Хотел.
-Создавать экземпляр класса 2, который проверял бы есть ли уже объект 1 в памяти и, если нет, создавал бы его, а, если да, работал бы с существующим.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Как получить ссылку на существующифй экземпляр класса?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]