Чтение онлайн

ЖАНРЫ

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

Салмре Иво

Шрифт:

' SetUpGameStateForStartScreen

 Case GameState.AskQuestion

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

'для которого это запрещено, возбудить исключение

If ((m_CurrentGameState <> GameState.StartScreen) _

AndAlso (m_CurrentGameState <> GameState.CongratulateUser) _

AndAlso (m_CurrentGameState <> GameState.ScoldUser)) Then

Throw New System.Exception("Запрещённое
изменение состояния!")

End If

'ЧТО СДЕЛАТЬ: Поместите сюда код, выполняющий следующие операции:

' 1. Скрытие (Hide), отображение (Show) и перемещение (Move)

' элементов управления пользовательского интерфейса

' 2. Настройка переменных/состояний игры, соответствующих

' данному режиму работы

'

' SetUpGameStateForAskQuestion

 Case GameState.CongratulateUser

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

'для которого это запрещено, возбудить исключение

If (m_CurrentGameState <> GameState.AskQuestion) Then

Throw New System.Exception("Запрещённое изменение состояния!")

End If

'ЧТО СДЕЛАТЬ: Поместите сюда код, выполняющий следующие операции:

' 1. Скрытие (Hide), отображение (Show) и перемещение (Move)

' элементов управления пользовательского интерфейса

' 2. Настройка переменных/состояний игры, соответствующих

' данному режиму работы

'

' SetUpGameStateForCongratulateUser

 Case GameState.ScoldUser

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

'для которого это запрещено, возбудить исключение

If (m_CurrentGameState <> GameState.AskQuestion) Then

Throw New System.Exception("Запрещённое изменение состояния!")

End If

'ЧТО СДЕЛАТЬ: Поместите сюда код, выполняющий следующие операции:

' 1. Скрытие (Hide), отображение (Show) и перемещение (Move)

' элементов управления пользовательского интерфейса

' 2. Настройка переменных/состояний игры, соответствующих

' данному режиму работы

' SetUpGameStateForScoldUser

 Case Else

Throw New System.Exception("Наизвестное состояние!")

 End Select

 'Сохранить запрошенное новое состояние в качестве текущего

 m_CurrentGameState = newGameUIState

End Sub

End Class

Листинг 5.2.
Неявное изменение состояния приложения (неудачный подход)

'Код, выполняющийся при загрузке формы

Private Sub Form1_Load(ByVal senderAs System.Object,ByVal _

 e As System.EventArgs) Handles MyBase.Load

 TextBox1.Visible = True

 ListBox1.Visible = False

End Sub

'Данные

Private m_someImportantInfoAs String

'Пользователь щелкнул на кнопке и хочет перейти к выполнению

'следующего шага данного приложения. Скрыть текстовое окно и отобразить

'окно списка в отведенном для этого месте.

Private Sub Button1_Click(ByVal senderAs System.Object,ByVal _

 e As System.EventArgs) Handles Button1.Click

 m_someImportantInfo = TextBox1.Text

 TextBox1.Visible = False

 ListBox1.Visible =True

End Sub

Листинг 5.3. Явное изменение состояния приложения (удачный подход)

Private m_someImportantInfo As String

'Определить состояния, в которых может находиться приложение

Enum MyStates

 step1

 step2

End Enum

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

'Главная функция, которая

'вызывается всякий раз, когда возникает необходимость

'в изменении состояния приложения

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

Sub ChangeApplicationState(ByVal newStateAs MyStates)

 Select Case newState

 Case MyStates.step1

TextBox1.Visible = True

ListBox1.Visible = False

 Case MyStates.step2

m_someImportantInfo = TextBox1.Text

TextBox1.Visible = False

ListBox1.Visible = True

 End Select

End Sub

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

'Пользователь щелкнул на кнопке и хочет перейти к выполнению

'следующего шага данного приложения. Скрыть текстовое окно и отобразить

'окно списка в отведенном для этого месте.

Поделиться с друзьями: