Выбрать главу

Private Shared s_Player_Bitmap4 As System.Drawing.Bitmap

Private Shared s_colPlayerBitmaps As _

 System.Collections.ArrayList

'----------------------

'Освободить все ресурсы

'----------------------

Public Shared Sub g_PlayerBitmapsCollection_CleanUp()

 'Если не загружено ни одно изображение, то и память освобождать не от чего

 If (s_colPlayerBitmapsIs Nothing) Then Return

 'Дать указание каждому из этих объектов освободить

 'любые удерживаемые ими неуправляемые ресурсы

 s_Player_Bitmap1.Dispose()

 s_Player_Bitmap2.Dispose()

 s_Player_Bitmap3.Dispose()

 s_Player_Bitmap4.Dispose()

 'Обнулить каждую из этих переменных, чтобы им не соответствовали

 'никакие объекты в памяти

 s_Player_Bitmap1 = Nothing

 s_Player_Bitmap2 = Nothing

 s_Player_Bitmap3 = Nothing

 s_Player_Bitmap4 = Nothing

 'Избавиться от массива

 s_colPlayerBitmaps = Nothing

End Sub

'-----------------------------------------

'Функция: возвращает коллекцию изображений

'-----------------------------------------

Public Shared Function g_PlayerBitmapsCollection() _

 As System.Collections.ArrayList

 '---------------------------------------------------------------

 'Если изображения уже загружены, их достаточно только возвратить

 '---------------------------------------------------------------

 If Not (s_colPlayerBitmaps Is Nothing) Then

  Return scolPlayerBitmaps

 End If

 'Загрузить изображения как ресурсы из исполняемого двоичного файла

 Dim thisAssemblyAs System.Reflection.Assembly = _

  System.Reflection.Assembly.GetExecutingAssembly()

 Dim thisAssemblyNameAs System.Reflection.AssemblyName = _

  thisAssembly.GetName()

 Dim assemblyNameAs String = thisAssemblyName.Name

 'Загрузить изображения

 s_Player_Bitmap1 =New System.Drawing.Bitmap( _

  thisAssembly.GetManifestResourceStream(assemblyName _

  + ".Hank_RightRun1.bmp"))

 s_Player_Bitmap2 = New System.Drawing.Bitmap( _

  thisAssembly.GetManifestResourceStream(assemblyName _

  + ".Hank_RightRun2.bmp"))

 s_Player_Bitmap3 = New System.Drawing.Bitmap( _

  thisAssembly.GetManifestResourceStream(assemblyName _

  + ".Hank_LeftRun1.bmp"))

 s_Player_Bitmap4 = New System.Drawing.Bitmap( _

  thisAssembly.GetManifestResourceStream(assemblyName _

  + ".Hank_LeftRun2.bmp"))

 'Добавить изображения в коллекцию

 s_colPlayerBitmaps = New System.Collections.ArrayList

 s_colPlayerBitmaps.Add(s_Player_Bitmap1)

 s_colPlayerBitmaps.Add(s_Player_Bitmap2)

 s_colPlayerBitmaps.Add(s_Player_Bitmap3)

 s_colPlayerBitmaps.Add(s_Player_Bitmap4)

 'Возвратить коллекцию

 Return s_colPlayerBitmaps

End Function

Private Shared s_blackPen As System.Drawing.Pen

Private Shared s_whitePen As System.Drawing.Pen

Private Shared s_ImageAttribute As _

 System.Drawing.Imaging.ImageAttributes

Private Shared s_boldFont As System.Drawing.Font

'------------------------------------------------

'Вызывается для освобождения от любых графических

'ресурсов, которые могли быть кэшированы

'------------------------------------------------

Private Shared Sub g_CleanUpDrawingResources()

 'Освободить память от черного пера, если таковое имеется

 If Not (s_blackPenIs Nothing) Then

  s_blackPen.Dispose()

  s_blackPen = Nothing

 End If

 'Освободить память от белого пера, если таковое имеется

 If Not (s_whitePenIs Nothing) Then

  s_whitePen.Dispose()

  s_whitePen = Nothing

 End If

 'Освободить память от атрибута ImageAttribute, если таковой имеется.

 'Примечание. Метод Dispose() для этого типа не предусмотрен,

 'поскольку все его данные являются управляемыми

 If Not (s_ImageAttribute Is Nothing) Then

  s_ImageAttribute = Nothing

 End If

 'Освободить память от полужирного шрифта, если таковой имеется

 If Not (s_boldFontIs Nothing) Then

  b_boldFont.Dispose()

  s_boldFont = Nothing

 End If

End Sub

'-----------------------------------------

'Эта функция позволяет получить доступ

'к черному перу, находящемуся в кэш-памяти

'-----------------------------------------

Private Shared Function g_GetBlackPen() As System.Drawing.Pen

 'Если перо еще не существует, создать его

 If (s_blackPen Is Nothing) Then

  s_blackPen = New System.Drawing.Pen( _

   System.Drawing.Color.Black)

 End If

 'Возвратить черное перо

 Return s_blackPen

End Function

'----------------------------------------

'Эта функция позволяет получить доступ

'к белому перу, находящемуся в кэш-памяти

'----------------------------------------

Private Shared Function g_GetWhitePen() As System.Drawing.Pen

 'Если перо еще не существует, создать его

 If (s_whitePen Is Nothing) Then

  s_whitePen = New System.Drawing.Pen( _

   System.Drawing.Color.White)

 End If

 'Возвратить белое перо

 Return s_whitePen

End Function

'-----------------------------------------------

'Эта функция позволяет получить доступ

'к полужирному шрифту, находящемуся в кэш-памяти

'-----------------------------------------------

Private Shared Function g_GetBoldFont() As System.Drawing.Font

 'Если перо еще не существует, создать его

 If (s_boldFont Is Nothing) Then

  s_boldFont = New System.Drawing.Font( _

  System.Drawing.FontFamily.GenericSerif, 10, System.Drawing.FontStyle.Bold)

 End If

 'Возвратить полужирный шрифт

 Return s_boldFont

End Function