Программирование мобильных устройств на платформе .NET Compact Framework
Шрифт:
'Эта функция подключается для обработки событий
'щелчка на кнопке 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
'==============================================================
'Эта функция должна быть вызвана до попыток доступа к любому из
'вышеперечисленных глобальных объектов
'==============================================================
Public Shared Sub InitializeGlobals
If (s_alreadyInitialized = True) Then Return
g_blackPen = New Systera.Drawing.Pen(Color.Black)
g_whitePen = New System.Drawing.Pen(Color.White)
g_ImageAttribute = New _
System.Drawing.Imaging.ImageAttributes
g_ImageAttribute.SetColorKey(Color.White, Color.White)
g_boldFont = New Font(FontFamily.GenericSerif, _
10, FontStyle.Bold)
g_smallTextFont = New Font(FontFamily.GenericSansSerif, _
8, FontStyle.Regular)
g_blackBrush = New SolidBrush(System.Drawing.Color.Black)
g_greenBrush = New SolidBrush(System.Drawing.Color.LightGreen)
g_yellowBrush = New SolidBrush(System.Drawing.Color.Yellow)
g_redBrush = New SolidBrush(System.Drawing.Color.Red)
s_alreadyInitialized = True
End Sub
'====================================================
Поделиться:
Популярные книги
Ученичество. Книга 2
2. Государственный маг
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Император поневоле
6. Фараон
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Лорд Системы 7
7. Лорд Системы
Фантастика:
фэнтези
попаданцы
рпг
5.00
рейтинг книги
Целитель. Книга вторая
2. Целитель
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Темный Патриарх Светлого Рода 3
3. Темный Патриарх Светлого Рода
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Случайная свадьба (+ Бонус)
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Прометей: каменный век II
2. Прометей
Фантастика:
альтернативная история
7.40
рейтинг книги
Жребий некроманта. Надежда рода
1. Жребий некроманта
Фантастика:
фэнтези
попаданцы
6.50
рейтинг книги
Возвышение Меркурия
1. Меркурий
Фантастика:
героическая фантастика
попаданцы
аниме
5.00
рейтинг книги
Не грози Дубровскому! Том Х
10. РОС: Не грози Дубровскому!
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 12
12. Лекарь
Фантастика:
боевая фантастика
юмористическая фантастика
аниме
5.00
рейтинг книги
Хочу тебя навсегда
2. Люби меня
Любовные романы:
современные любовные романы
5.25
рейтинг книги
СД. Том 15
15. Сердце дракона
Фантастика:
героическая фантастика
боевая фантастика
6.14
рейтинг книги
Смерть может танцевать 3
3. Безликий
Фантастика:
боевая фантастика
5.40