powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Про объектные переменные
6 сообщений из 6, страница 1 из 1
Про объектные переменные
    #34629969
Ден Программёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здрасте!

Посмотрел по топикам "объектные переменные", нашёл 10, вроде, штук топиков с разными ответами.
Но надо разбираться ещё и ещё.
Хочу для начала спросить: если объектная переменная (Object) или переменная-объект(Word.Application, ADODB.Recordset) описана на уровне процедуры (например, формирую документ Ворда при нажатии кнопочки, описав Аппликашку и сам Док как переменные-объекты, но применяю и другие объекты на уровне процедуры, рекордсеты в основном), то когда процедура завершается, все ли созданные в ней объекты и ссылки на них уничтожаются или обнафигачиваются?
...
Рейтинг: 0 / 0
Про объектные переменные
    #34630030
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
После выхода из процедуры, локальные переменные уничтожаются. Т.е. все ссылк "нафингуются" кроме статических переменных (не путать с сишным static). И если вы ссылку на объект не передали куда-то еще, то объект автоматически уничтожится. Уничтожать объектные переменные объявленные внутри процедур - это лишнее. Объявленные на уровне модуля класса - не помешает (но польза от этотого - лишь борьба с циклической ссылкой).
Для Work.Application недостаточно просто ссылки "погасить". Ему надо дать команду выгрузиться. То же самое контролы динамически созданные на форме - будут жить на ней до выгрузки или до команды .Controls.Remove или Unload.
...
Рейтинг: 0 / 0
Про объектные переменные
    #34630035
Ден Программёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Worobjoff

Дело в том, что после процедуры, документ должен остаться на виду у секретарши, но переменные для его создания я объявляю на уровне процедуры Dim'ом. И ссылок на него никуда не даю.
А вот если я объявляю на уровне процедуры рекордсет, который использую лишь пока есть процедура. как она завершилась я его не нафигачиваю, этот рекорд тоже сам уничтожиться? ссылок на него я тоже никому не передаю на более высокий уровень
...
Рейтинг: 0 / 0
Про объектные переменные
    #34630050
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ден ПрограммёрА вот если я объявляю на уровне процедуры рекордсет, который использую лишь пока есть процедура. как она завершилась я его не нафигачиваю, этот рекорд тоже сам уничтожиться? ссылок на него я тоже никому не передаю на более высокий уровеньДа.
...
Рейтинг: 0 / 0
Про объектные переменные
    #34630053
Ден Программёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Worobjoff Ден ПрограммёрА вот если я объявляю на уровне процедуры рекордсет, который использую лишь пока есть процедура. как она завершилась я его не нафигачиваю, этот рекорд тоже сам уничтожиться? ссылок на него я тоже никому не передаю на более высокий уровеньДа.

Итак, если даже объект описан на уровне процедуры, но на него дали ссылку на переменную глобального уровня, т.е. уровня модуля формы или класса, то при выходе из процедуры он не уничтожается, если не объявили чтобы он пошёл нафиг
...
Рейтинг: 0 / 0
Про объектные переменные
    #34630058
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ден ПрограммёрИтак, если даже объект описан на уровне процедуры, но на него дали ссылку на переменную глобального уровня, т.е. уровня модуля формы или класса, то при выходе из процедуры он не уничтожается, если не объявили чтобы он пошёл нафигЗдесь посылают нафиг ссылку а не объект.
Объект уничтожает сборщик мусора, но не ваш код.
Про подсчет ссылок слышали?
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Про объектные переменные
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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