Программирование мобильных устройств на платформе .NET Compact Framework (Салмре) - страница 566

>'щелчка на кнопке Button1

>'----------------------------------------------

>Private Sub Button1_Click(ByVal sender As System.Object, _

> ByVal e As System.EventArgs) Handles Button1.Click


> '----------------------------------------------

> 'Для простоты мы допускаем существование только

> 'одного экземпляра элемента управления,

> '----------------------------------------------

> If Not (m_newControl Is Nothing) Then Return

>  'Создать экземпляр нашей кнопки

>  m_newControl = New myButton

>  'Указать ему его местоположение внутри родительского объекта

>  m_newControl.Bounds = New Rectangle(10, 10, 150, 40)


> '-------------------------------

> 'Присоединить обработчик событий

> '-------------------------------

> AddHandler m_newControl.EventButtonTurningBlue, _

>  AddressOf CallWhenButtonTurningBlue

> 'Добавить его в список элементов управления данной формы.

> 'Это сделает его видимым

> Me.Controls.Add(m_newControl)

>End Sub

Листинг 11.11. Три полезных способа кэширования графических ресурсов

>Imports System

>Imports System.Drawing


>Friend Class GraphicsGlobals

>'=======================================================================

>'Подход 1: Создать ресурс по требованию

>'         и кэшировать его для последующего использования.

>'

>'Внешний код получает доступ к общедоступным свойствам для их просмотра,

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

>'=======================================================================

>Private Shared s_bluePen As Pen

>Public Shared ReadOnly Property globalBluePen() As Pen

> Get

>  'Если перо еще не было создано

>  If (s_bluePen Is Nothing) Then

>   s_bluePen = New System.Drawing.Pen( _

>    System.Drawing.Color.Blue)

>  End If

>  Return s_bluePen

> End Get

>End Property

>'========================================================

>'Подход 2:

>'Загрузить глобально и кэшировать все

>'используемые объекты Pen, ImageAttribute, Font и Brush

>'

>'Внешний код получает доступ ко всем общедоступным членам,

>'так что никакие функции доступа не нужны.

>'=========================================================

>Public Shared g_blackPen As Pen

>Public Shared g_whitePen As Pen

>Public Shared g_ImageAttribute As Imaging.ImageAttributes

>Private Shared s_alreadyInitialized As Boolean

>Public Shared g_boldFont As Font

>Public Shared g_smallTextFont As Font

>Public Shared g_greenBrush As Brush

>Public Shared g_yellowBrush As Brush

>Public Shared g_redBrush As Brush

>Public Shared g_blackBrush As Brush


>'==============================================================

>'Эта функция должна быть вызвана до попыток доступа к любому из

>'вышеперечисленных глобальных объектов