При создании hBitmap и IPictureDisp из него что я должен удалять при выгрузке формы - VB

Узнай цену своей работы

Формулировка задачи:

Т.е.

По идее я ему должен сделать

Но если я это сделаю на этапе создания то моя
As IPictureDisp
будет бесполезна.
В коде я делаю:

Варианты ответа:
1) DeleteObject g_picRebarBackground
2) DeleteObject g_picRebarBackground.Handle
3) Set g_picRebarBackground = Nothing
4) ваабще ничего не делать
Если бы g_picRebarBackground создавался один раз я бы забил.
Но при Form_resize я его перерисовываю (градиент растянут на ширину Rebar, перерисовка вполне себе культурно внешне работает):

Задница в том, что если я чего-то недоглядел и ресурсы эти жрутся, а не авто-удаляются (как хотелось бы), то это задница, поэтому опасения не праздные.
Да, и еще.
Если сделать
1) DeleteObject g_picRebarBackground
2) DeleteObject g_picRebarBackground.Handle
а при этом в коде не выполнялось
set = g_picRebarBackground
то прога при этом вылетит
Error91: Object NOT set
Как записать
If (g_picRebarBackground) then DeleteObject
(будем считать, я не знаю точно был ли он Set -делается в завис. от OS, от выбранного стиля и т.п., юзер мог допустим отключить Темы в процессе работы - я специально данное действо не отслеживаю -пускай перегружает если интерфейс сильно съехал)

Решение задачи: «При создании hBitmap и IPictureDisp из него что я должен удалять при выгрузке формы»

textual
Листинг программы
If Not g_picRebarBackground Is Nothing Then Set g_picRebarBackground = Nothing

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 3.6 из 5
Похожие ответы