KnigaRead.com/
KnigaRead.com » Компьютеры и Интернет » Программирование » Иво Салмре - Программирование мобильных устройств на платформе .NET Compact Framework

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

На нашем сайте KnigaRead.com Вы можете абсолютно бесплатно читать книгу онлайн Иво Салмре, "Программирование мобильных устройств на платформе .NET Compact Framework" бесплатно, без регистрации.
Перейти на страницу:

  //Скрыть текстовое окно

  textBoxAskQuestion.Visible = false;

  SetAnswerButtonVisibility(false);

  SetDifficultyButtonVisibility(false);

  break;

 case GameUIState.waitForNextQuestion:

  setQuestionText("List answer details here... rn" +

   "Lots of space to write...rn" +

   "Waiting for user to select next question...");

  textBoxAskQuestion.Visible = true;

  buttonAskQuestion.Text = "Next";

  buttonAskQuestion.Visible = true;


  //Убедиться в том, что кнопка отображается на переднем плане

  buttonAskQuestion.BringToFront();

  SetAnswerButtonVisibility(false);

  SetDifficultyButtonVisibility(false);

#if PLAYFIELD ON_BOTTOM //ПОЛЕ ИГРЫ располагается под пользовательскими

                        //элементами управления

  textBoxAskQuestion.Height = pictureBoxGameBoard.Top - 2;

#else //ПОЛЕ ИГРЫ располагается над пользовательскими

      //элементами управления

  textBoxAskQuestion.Top = pictureBoxGameBoard.Top + pictureBoxGameBoard.Height + 2;

  textBoxAskQuestion.Height = this.Height - textBoxAskQuestion.Top;

#endif

  break;

 case GameUIState.waitForUserToStateKnowledge:

  SetTextForVocabularyQuestion();

  textBoxAskQuestion.Visible = true;

  buttonAskQuestion.Visible = false;

  SetAnswerButtonVisibility(false);

  SetDifficultyButtonVisibility(true);

#if PLAYFIELD_ON_BOTTOM //ПОЛЕ ИГРЫ располагается под пользовательскими

                        //элементами управления

  textBoxAskQuestion.Height = buttonShowAnswers_AdvancedVersion.Top - 2;

#else //ПОЛЕ ИГРЫ располагается над пользовательскими

      //элементами управления

  textBoxAskQuestion.Top = buttonShowAnswers_AdvancedVersion.Top + buttonShowAnswers_AdvancedVersion.Height + 2;

  textBoxAskQuestion.Height = this.Height - textBoxAskQuestion.Top;

#endif

  break;

 case GameUIState.waitForUserToAnswerMultipleChoice:

  buttonAskQuestion.Visible = false;

  SetDifficultyButtonVisibility(false);

  //Сделать кнопки доступными, чтобы пользователь мог щелкать на них

  SetAnswerButtonEnabled(true);

  SetAnswerButtonVisibility(true);

#if PLAYFIELD_ON_BOTTOM //ПОЛЕ ИГРЫ располагается под пользовательскими

                       //элементами управления

  textBoxAskQuestion.Height = buttonAnswer0.Top - 2;

#else //ПОЛЕ ИГРЫ располагается над пользовательскими

      //элементами управления.

  //Разместить текстовое окно таким образом, чтобы экран использовался

  //эффективно

  textBoxAskQuestion.Top = buttonAnswer5.Top + buttonAnswer5.Height + 2;

  textBoxAskQuestion.Height =this.Height - textBoxAskQuestion.Top;

#endif

  break;


//======================================================================

//Задать статическую компоновку нашего пользовательского интерфейса.

//Сюда входят все элементы, позиции которых остаются фиксированными.

//Изменения в остальные свойства внесет конечный автомат

//пользовательского интерфейса

//======================================================================

private void SetStartControlPositionAndState() {

 pictureBoxGameBoard.Width = 240;

 pictureBoxGameBoard.Height = 176;

 //Установить размеры кнопок множественного выбора вариантов ответов

 const int answerButtons_dx = 117;

 const int answerButtons_dy = 18;

 buttonAnswer0.Width = answerButtons_dx;

 buttonAnswer0.Height = answerButtons_dy;

 buttonAnswer1.Size = buttonAnswer0.Size;

 buttonAnswer2.Size = buttonAnswer0.Size;

 buttonAnswer3.Size = buttonAnswer0.Size;

 buttonAnswer4.Size = buttonAnswer0.Size;

 buttonAnswer5.Size = buttonAnswer0.Size;

 buttonShowAnswers_AdvancedVersion.Width = answerButtons_dx;

 buttonShowAnswers_AdvancedVersion.Height = 24;

 buttonShowAnswers_SimpleVersion.Size = buttonShowAnswers_AdvancedVersion.Size;


 //Расстояние (в пикселях) между соседними кнопками

 const int dx_betweenButtons = 3;

 const int dy_betweenButtons = 2;

 const int answerbuttons_beginX = 3;


 //Создать задний план для нашего изображения, чтобы мы видели

 //его в процессе тестирования

 System.Drawing.Bitmap gameBoard;

 gameBoard = new System.Drawing.Bitmap(pictureBoxGameBoard.Width, pictureBoxGameBoard.Height);

 System.Drawing.Graphics gameboard_gfx;

 gameboard_gfx = System.Drawing.Graphics.FromImage(gameBoard);

 gameboard_gfx.Clear(System.Drawing.Color.Yellow);

 System.Drawing.Pen myPen = new System.Drawing.Pen(System.Drawing.Color.Blue);

 gameboard_gfx.DrawRectangle(myPen, 2, 2, gameBoard.Width-4, gameBoard.Height-6);

 myPen.Dispose();

 gameboard_gfx.Dispose();

 pictureBoxGameBoard.Image = gameBoard;


 //Разместить текстовое окно, в котором содержатся задаваемые вопросы,

 //a также подробные ответы для пользователей

 textBoxAskQuestion.Left = 0;

 textBoxAskQuestion.Width = 240;

 buttonAskQuestion.Width = 64;

 buttonAskQuestion.Height = 20;


#if PLAYFIELD_ON_BOTTOM //ПОЛЕ ИГРЫ располагается под пользовательскими

                        //элементами управления

 const int answerbuttons_beginY = 42;

 const int showanswers_beginY = 77;


 //--------------------------------------------------------

 //Задать кнопки выбора вариантов Easy или Hard режима игры

 //--------------------------------------------------------

 buttonShowAnswers_AdvancedVersion.Top = showanswers_beginY;

 buttonShowAnswers_SimpleVersion.Top = showanswers_beginY;


 //------------------------------

 //Задать набор вариантов ответов

 //------------------------------


 //Задать элемент управления, по которому будут выравниваться

 //все остальные элементы управления

 buttonAnswer0.Top = answerbuttons_beginY;


 //Поместить PictureBox под элементами управления

 pictureBoxGameBoard.Top = (answerButtons_dy + dy_betweenButtons) * 3 + answerbuttons beginY;

 buttonAskQuestion.Top = 0;

 buttonAskQuestion.Left = 174;

 textBoxAskQuestion.Top = 0;

#else //ПОЛЕ ИГРЫ располагается над пользовательскими

      //элементами управления

 const int answerbuttons_beginY = 174;

 //--------------------------------------------------------

 //Задать кнопки выбора вариантов Easy или Hard режима игры

 //--------------------------------------------------------

 buttonShowAnswers_AdvancedVersion.Top = answerbuttons_beginY;

 buttonShowAnswers_SimpleVersion.Top = answerbuttons_beginY;


 //-----------------------------

 //Задать набор вариантов ответа

 //-----------------------------


 //Задать элемент управления, по которому будут выравниваться

 //все остальные элементы управления

 buttonAnswer0.Top = answerbuttons_beginY;

 pictureBoxGameBoard.Top = 0;

 buttonAskQuestion.Top = answerbuttons_beginY;

 buttonAskQuestion.Left = 174;

#endif

 buttonShowAnswers_AdvancedVersion.Left = answerbuttons_beginX;

 buttonShowAnswers_SimpleVersion.Left = buttonShowAnswers_AdvancedVersion.Left + answerButtons_dx + dx betweenButtons;

 pictureBoxGameBoard.Left = 0;

 pictureBoxGameBoard.Width = 240;

 pictureBoxGameBoard.Height = 172;

 buttonAnswer0.Left = answerbuttons_beginX;

 buttonAnswer1.Left = buttonAnswer0.Left + answerButtons_dx + dx_betweenButtons;

 buttonAnswer1.Top = buttonAnswer0.Top;


 //следующий ряд

 buttonAnswer2.Left = buttonAnswer0.Left;

 buttonAnswer2.Top = buttonAnswer0.Top + answerButtons_dy + dy_betweenButtons;

 buttonAnswer3.Left = buttonAnswer2.Left + answerButtons_dx + dx_betweenButtons;

 buttonAnswer3.Top = buttonAnswer2.Top;


 //следующий ряд

 buttonAnswer4.Left = buttonAnswer2.Left;

 buttonAnswer4.Top = buttonAnswer2.Top + answerButtons_dy + dy_betweenButtons;

 buttonAnswer5.Left = buttonAnswer4.Left + answerButtons_dx + dx_betweenButtons;

 buttonAnswer5.Top = buttonAnswer4.Top;

}


//-------------------------------------------------------------

//Вспомогательная функция, которая позволяет задавать состояние

//видимости кнопок, отображающих ответы из словаря

//-------------------------------------------------------------

private void SetAnswerButtonVisibility(bool visibleState) {

 buttonAnswer0.Visible = visibleState;

 buttonAnswer1.Visible = visibleState;

 buttonAnswer2.Visible = visibleState;

 buttonAnswer3.Visible = visibleState;

 buttonAnswer4.Visible = visibleState;

 buttonAnswer5.Visible = visibleState;

}


//-----------------------------------------------------------------

//Вспомогательная функция, вызываемая для задания свойств видимости

//некоторых элементов управления

//-----------------------------------------------------------------

private void SetDifficultyButtonVisibility(bool visibleState) {

 buttonShowAnswers_AdvancedVersion.Visible = visibleState;

 buttonShowAnswers_SimpleVersion.Visible = visibleState;

}


//-------------------------------------------------------------

//Вспомогательная функция, которая позволяет задавать состояние

//видимости кнопок, отображающих ответы из словаря

//-------------------------------------------------------------

private void SetAnswerButtonEnabled(bool enabledState) {

 buttonAnswer0.Enabled = enabledState;

 buttonAnswer1.Enabled = enabledState;

 buttonAnswer2.Enabled = enabledState;

 buttonAnswer3.Enabled = enabledState;

Перейти на страницу:
Прокомментировать
Подтвердите что вы не робот:*