Аннотация: В этой лекции вы узнаете, как создать простой, но привлекательный графический интерфейс с помощью элементов управления из области элементов Visual Studio; как настраивать их поведение, изменяя свойства, и напишете код, который определит, что будет делать ваша программа
В этой лекции вы узнаете, как:
- создать пользовательский интерфейс для новой программы;
- настроить свойства для каждого объекта пользовательского интерфейса;
- создать код программы;
- сохранить и запустить программу;
- создать исполняемый файл.
В среде Microsoft Visual Studio .NET имеются мощные инструменты для запуска программ и работы с ними. В Visual Studio также содержится все необходимое для создания с нуля приложений для Microsoft Windows. В этой лекции вы узнаете, как создать простой, но привлекательный графический интерфейс с помощью элементов управления из области элементов Visual Studio. Затем вы узнаете, как настраивать поведение этих элементов управления, изменяя их свойства, и напишете код, который определит, что будет делать ваша программа. В конце лекции вы узнаете, как сохранить и запустить вашу программу (игорный автомат в стиле Лас-Вегаса), и как скомпилировать исполняемый файл.
Что нового в Visual Basic .NET?
- В среде разработки Visual Studio .NET частично изменились меню и панели инструментов, которые используются при создании программ. Например, в Visual Basic 6 имелись меню Format (Формат), Run (Запуск) и Add-Ins (Дополнительные модули), которые отсутствуют в Visual Studio. Большинство команд было перенесено в другие меню — например, команды меню Run (Запуск) вы найдете в меню Debug (Отладка).
- Элемент управления CommandButton в Visual Studio .NET называется Button, и многие из его свойств и методов также изменились. Например, свойство Caption теперь называется Text.
- Появились новые свойства и методы в элементе управления Label (надпись), старые также изменились. Например, у свойства TextAlign появились новые возможности по сравнению с его ранней версией — свойством Alignment.
- Элемент управления Image удален из Visual Studio. Для вывода изображений теперь используется элемент управления PictureBox.
- По сравнению с Visual Basic 6 в программах Visual Basic .NET стало больше кода, добавляемого автоматически. В частности, в верхней части каждой формы Visual Basic .NET добавляет блок кода, помеченный как «Код, автоматически созданный конструктором форм Windows». В этом блоке определяются важные характеристики формы, и он не должен изменяться (собственный код можно писать после этого блока кода.)
- Visual Studio может создавать два типа исполняемых файлов вашего проекта — отладочную версию и окончательную (распространяемую) версию. Отладочные версии содержат отладочную информацию и используются при тестировании и отладке программы. Окончательные версии оптимизированы и имеют меньший размер, они создаются, когда разработка программы завершена.
«Семерка»: ваша первая программа на Visual Basic
Приложение для Windows, которое мы будем создавать в этой лекции, называется «Семерка» (Lucky Seven). Эта программа имитирует игровой автомат со «счастливыми» числами. У «Семерки» простой графический интерфейс, ее можно создать и скомпилировать в Visual Basic всего за несколько минут. Вот как будет выглядеть программа, когда вы ее закончите.
Примечание. Готовую версию «Семерки» можно найти в папке c:\vbnet03sbs\Гл.2\СемеркаОбразец\bin..
Шаги программирования
Графический интерфейс «Семерки» имеет две кнопки, три поля для показа «счастливых» чисел, цифровую фотографию, символизирующую выигрыши, и текст «Счастливая семерка». Чтобы сконструировать этот интерфейс, нужно создать семь объектов на форме Семерка, а затем изменить некоторые свойства в каждом из них. Затем нужно добавить код программы для кнопок Крутить и Выход, который обрабатывает нажатия пользователя на этих кнопках и генерирует случайные числа. Чтобы создать эту программу с самого начала, необходимо выполнить в Visual Basic три основных шага по разработке программы: создать интерфейс пользователя, настроить свойства и написать код программы. В таблице описан этот процесс для «Семерки».
Таблица
2.1.
Шаг программирования | Число элементов |
---|---|
Создать графический интерфейс пользователя | 7 объектов |
Настроить свойства | 12 свойств |
Написать код программы | 2 объекта |
Богданов Илья Владимирович, группа ИСП–9–21
ОТЧЕТ О ПРАКТИЧЕСКОМ ЗАНЯТИИ №9
Тема: Проектирование и разработка графического интерфейса пользователя.
Цель: Получение навыков проектирования и разработки интерфейса пользователя.
Ход работы
Задание 1: Настроить среду разработки Visual Studio. Создать приложение для Windows, которое имитирует игровой автомат со «счастливыми» числами. Программа должна иметь следующий интерфейс (рисунок 16).
При нажатии на кнопку «Крутить» должны генерироваться три случайных числа от 0 до 9. Если хотя бы одно из них равно семи, на форме должны появляться надпись «Счастливая семерка» и картинка с изображением человека, платящего игроку деньги при выигрыше. При нажатии на кнопке «Выход» программа должна завершать работу. Решение сохранить под именем «Игра». Создать исполняемый файл приложения.
Добавить в созданную форму метку и организовать отображение на ней процента выигрышей по отношению к общему числу нажатий на кнопку «Крутить».
Добавить в программу оператор Randomize для того, чтобы программа при каждом запуске выдавала новую последовательность случайных чисел.
Создано приложение в визуальной среде разработки JetBrains Rider. При нажатии кнопки Крутить, генерируются три случайных числа, если одно число равно 7, то отображается картинка, производится расчет общего числа выигрышей к числу всех игр и отображается в процентах. При нажатии кнопки Выход, программа закрывается.
Результат работы представлен на рисунке 1.
Рисунок 1 – Программа 1
Исходный код представлен ниже:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace RKIS_PR9._1
{
public partial class Form1 : Form
{
private int tryings = 0;
private int wins = 0;
public Form1()
{
InitializeComponent();
}
private void button2_Click(object sender, EventArgs e)
{
Environment.Exit(0);
}
private void button1_Click(object sender, EventArgs
e)
{
Random rand = new Random();
int number1 = rand.Next(0, 10);
int number2 = rand.Next(0, 10);
int number3 = rand.Next(0, 10);
label1.Text = number1.ToString();
label2.Text = number2.ToString();
label3.Text = number3.ToString();
tryings += 1;
if (number1 == 7 || number2 == 7 || number3 == 7)
{
label4.Visible = true;
pictureBox1.Visible = true;
wins += 1;
}
else
{
label4.Visible = false;
pictureBox1.Visible = false;
}
statusBar1.Text = $»Процент выйгрыша = {(double)wins*100/tryings}%»;
}
}
}
Задание 2: Создать приложение для Windows «Продажи онлайн», которое позволяет выбрать для заказа компьютер, офисную технику и периферийные устройства с выводом в форму изображения выбранного оборудования, указать способ оплаты и желаемую дату поставки. Возможные способы оплаты: рубли, доллары США, английские фунты. При выборе способа оплаты должно появляться его символическое изображение. Пользователь, выбрав товары для заказа, вводит название фирмы. Рекомендуемый интерфейс приложения приведен на рисунке 17.
Решение сохранить под именем «Продажи». Создать исполняемый файл приложения.
Добавить в список офисной техники «МФУ» и добавить еще один объект
PictureBox для отображения рисунка МФУ. Соответствующим образом изменить программный код.
Добавить в способы оплаты «Чек».
Создано приложение по заданию. Программа позволяет выбрать тип компьютера, выбрать офисную технику, периферию, способ оплаты, называние фирмы, желаемую дату поставки, при выборе компонентов, программа отображает выбранные компоненты в виде фотографий. При нажатии кнопки Выход, программа закрывается.
Результат работы представлен на рисунке 2.
Рисунок 2 – Программа 2
Исходный код программы:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace RKIS_PR9._2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
comboBox1.SelectedIndex = 0;
}
private
void groupBox3_Enter(object sender, EventArgs e)
{
}
private void radioButton1_CheckedChanged(object sender, EventArgs e)
{
pictureBox1.ImageLocation = «PC.jpg«;
}
private void button1_Click(object sender, EventArgs e)
{
Environment.Exit(0);
}
private void radioButton2_CheckedChanged(object sender, EventArgs e)
{
pictureBox1.ImageLocation = «mac.jpg«;
}
private void radioButton3_CheckedChanged(object sender, EventArgs e)
{
pictureBox1.ImageLocation = «laptop.jpg«;
}
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
CheckBox checkBox = (CheckBox)sender;
if (checkBox.Checked)
pictureBox2.ImageLocation = «auto.jpg«;
else
pictureBox2.ImageLocation = null;
}
private void checkBox2_CheckedChanged(object sender, EventArgs e)
{
CheckBox checkBox = (CheckBox)sender;
if (checkBox.Checked)
pictureBox3.ImageLocation = «calc.png«;
else
pictureBox3.ImageLocation = null;
}
private void checkBox3_CheckedChanged(object sender, EventArgs e)
{
CheckBox checkBox = (CheckBox)sender;
if (checkBox.Checked)
pictureBox4.ImageLocation = «copy.jpg«;
else
pictureBox4.ImageLocation = null;
}
private void checkBox4_CheckedChanged(object sender, EventArgs e)
{
CheckBox checkBox = (CheckBox)sender;
if (checkBox.Checked)
pictureBox5.ImageLocation = «mfu.jpg«;
else
pictureBox5.ImageLocation = null;
}
private void listView1_SelectedIndexChanged(object sender, EventArgs e)
{
ListView.SelectedIndexCollection selectedIndices = listView1.SelectedIndices;
if (selectedIndices.Count > 0)
{
int selectedIndex = selectedIndices[0];
switch (selectedIndex)
{
case 0:
pictureBox6.ImageLocation = «hdd.jpg«;
break;
case 1:
pictureBox6.ImageLocation = «print.jpg«;
break;
case 2:
pictureBox6.ImageLocation = «sa.jpg«;
break;
}
}
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
int selectedIndex = comboBox1.SelectedIndex;
switch (selectedIndex)
{
case 0:
label5.Text = «»;
break;
case 1:
label5.Text = «\u20BD«;
break;
case 2:
label5.Text = «\u0024″;
break;
case 3:
label5.Text = «\u00A3″;
break;
case 4:
label5.Text = «»;
break;
}
}
}
}
Вывод: Получены навыки проектирования и разработки интерфейса пользователя.
-
Задание на
разработку проекта Проект-4.1.7-1
Создать
приложение на VB
2008 с
именем Проект-4.1.7-1,
которое
должно
имитировать работу игрового
автомата,
генерирующего три счастливых числа.
Если хотя
бы одно из чисел равно 7,
то считается, что играющий выиграл [8].
Проект-4.1.7-1
должен
иметь простой интерфейс пользователя
(рис.
4.1.7-1):
-
две
Кнопки
управления; -
три
Поля,
отображающие
случайные числа; -
один
Рисунок, отмечающий
выигрыш; -
один
Текст
«Проект-4.l.7-1».
Получить
эти элементы
можно, создав на
Форме
проекта
Проект-4.1.7-1
семь
объектов, а затем изменить некоторые
из свойств каждого объекта.
После
создания интерфейса добавить код
программы для
кнопок
Играть
и
Конец
игры, который
обрабатывает
щелчки пользователя на этих кнопках.
Рис. 4.1.7-1. Интерфейс
пользователя проекта Проект-4.1.7-1
-
Разработка
приложения
-
Создание
нового проекта:
-
Запустить
VS
2008. -
Выполнить
команду Создать
проект (New Project)
элемента главного меню Файл
(File). -
На
экране появится диалоговое окно Создание
проекта (New Project). -
Выбрать
шаблон Windows
Application
для типа проектов Visual
Basic
Windows
в диалоговом окне Создание
проекта (New Project).
Ввести
в текстовом поле Имя
(Name)
нижней части диалогового окна Создание
проекта (New Project)
имя проекта Проект-4.1.7-1. -
Щелкнуть
на кнопке ОК
диалогового
окна Создание
проекта (New Project).
VS
2008
присвоит проекту имя Проект-4.1.7-1
и отобразит основное окно
VS
2008
с различными панелями, среди которых
присутствует окно
Конструктора форм (Designer) с
пустой формой Форма1
(Form1).
Эта форма будет использоваться для
создания интерфейса пользователя.
-
Создание
интерфейса пользователя:
-
Изменить
размер формы, для этого необходимо
поместить указатель мыши над нижним
правым углом формы так, чтобы он изменился
и принял форму указателя изменения
размера, а затем перетащить этот угол
так, чтобы увеличить размер формы для
размещения на ней объектов проекта.
При изменении размера формы в окне
Конструктора
форм (Designer)
могут появиться полосы прокрутки,
которые позволяют получить доступ ко
всей созданной форме.
Задать
размер формы, примерно как показано на
рис. 4.1.7-2.
Чтобы
увидеть всю форму без помех, если это
необходимо, можно изменить размер других
панелей инструментов или закрыть их.
-
Добавить
на форму объект Кнопка1,
для чего дважды щелкнуть в окне панели
Панель
элементов (ToolBox)
на Button
(Кнопка).
VS
2005
создаст на форме объект кнопки с
размерами по умолчанию и именем Button1.
Причем объект новой кнопки выделен и,
вокруг него имеются манипуляторы
изменения размера.
Необходимо
обратить внимание на это название кнопки
— оно встретится при написании кода
программы. Когда VB
2008
находится в режиме конструктора, объекты
на форме перемещаются с помощью
перетаскивания их мышью, а их размеры
изменяются с помощью манипуляторов
изменения размера.
Необходимо
попрактиковаться в перемещении и
изменении размера кнопки.
-
Добавить
на форму второй объект Кнопка2,
для чего необходимо щелкнуть (теперь
только один раз) в окне панели Панель
элементов (ToolBox)
на объекте Button,
а затем переместить указатель мыши в
область формы Form1.
Указатель мыши примет форму перекрестия
с пиктограммой кнопки. Перекрестие
предназначено для того, чтобы нарисовать
прямоугольную фигуру кнопки на форме,
и этот метод используется как альтернатива
двойному щелчку, создающему элемент
управления с размером по умолчанию.
Перетащить
указатель вниз и вправо. Чтобы завершить
образование второй кнопки, необходимо
отпустить кнопку и посмотреть на ее
привязку к форме.
Изменить
размер объекта кнопки так, чтобы она
стала такого же размера, как и первая
кнопка, а затем переместить ее на форме,
расположив ниже Кнопка1.
В любой момент можно удалить объект и
начать заново — выбрав этот объект на
форме, а затем нажав на клавишу <Del>.
Попрактикуйтесь
в создании и удалении объектов интерфейса
пользователя. Форма должна выглядеть
примерно так, как показано рис. 4.1.7-2.
Рис.
4.1.7-2. Форма Form1
с объектами Button1
и
Button2
-
Добавить
на форму числовые надписи, для чего
дважды щелкнуть мышью в окне панели
Панель
элементов (ToolBox)
на элементе управления Надпись
(Label).
VS
создаст на форме экземпляр объекта
Label1.
Необходимо
перетащить элемент Label1
вниз от двух объектов кнопок.
-
Создать
второй объект надписи, дважды щелкнув
мышью в окне панели Панель
элементов (ToolBox)
на элементе управления Надпись
(Label). VS
2008
создаст на форме элемент Label2. -
Создать
третий объект надписи Label3,
снова дважды щелкнув мышью на элементе
управления Label,
чтобы создать третий объект надписи
Label3. -
Создать
четвертый объект надписи Label4
таким же образом. -
Переместить
третий и четвертый объекты надписей
вправо от второго, оставив между этими
тремя надписями небольшое расстояние,
так как при работе программы они будут
использоваться для отображения больших
цифр.
Форма
будет иметь вид примерно такой, как
показано на рис. 4.1.7-3. Если объекты
надписей выглядят не вполне правильно,
то вы можете переместить их.
Рис. 4.1.7-3. Форма
Form1
с элементами управления Button
и
Label
-
Добавить
на форму рисунок, для этого необходимо
щелкнуть в окне панели
Панель
элементов (ToolBox)
на элементе управления Изображение
(PictureBox.)
Используя
Указатель рисования элемента управления,
необходимо создать на форме большой
прямоугольник, расположенный ниже
второй и третьей надписей.
Область
рисунка должна выглядеть примерно так,
как на рис. 4.1.7-4.
Рис.
4.1.7-4. Форма
Form1
с элементами управления Button,
Label
и
PictureBox
Этот
объект в программе будет называться
PictureBox1.
Это имя будет использоваться в дальнейшем
при написании кода программы.
-
Установка
свойств объектов
Свойства
изменяются при помощи выбора объектов
на форме и изменения их значений в
окне Свойства
(Properties).
-
Установить
свойства первой кнопки, для этого
щелкнуть на кнопке Button1.
Кнопка
выделится и будет окружена манипуляторами
изменения размера.
Затем
необходимо сделать щелчок на строке
заголовка окна Свойства
(Properties).
Если
окно Свойства
(Properties)
скрыто, щелкните на команде Свойства
(Properties)
элемента главного меню Вид
(View)
или нажмите на клавишу <F4>.
Изменить (если требуется) размер окна
Свойства
(Properties)
так, чтобы в нем было достаточно места
для отображения имен свойств и их текущих
значений.
Когда
вы привыкнете устанавливать свойства,
то сможете использовать окно Свойства
(Properties)
без увеличения его размеров.
Окно
Свойства
(Properties)
содержит список значений свойств для
первой кнопки Button1.
Они включают значения для цвета фона,
текста, высоты шрифта и ширины кнопки
и др. Так как имеется много свойств, VS
2008
организует их в категории и отображает
в виде структуры. Если имеется желание
увидеть свойства из какой-то категории,
необходимо щелкнуть на знаке «плюс»
(+) рядом с названием категории.
Прокрутить
список окна Свойства
(Properties)
так, чтобы увидеть свойство Text,
расположенное в категории Внешний
вид (Appearance)).
Дважды
щелкнуть мышью в окне Свойства
(Properties)
в левом столбце свойства Text.
В окне Свойства
(Properties)
будет выделено текущее значение
свойства Text
(«Button1»).
Необходимо
ввести текст Играть
и
нажать <Enter>.
В окне
Свойства
(Properties)
свойство Text
изменит свое значение на «Играть»,
и
этот же текст появится на самой кнопке
формы.
-
Установить
свойства второй кнопки, выделив вторую
кнопку Button2
другим способом. Для этого необходимо
раскрыть список Объект
(Object)
в верхней части окна Свойства
(Properties).
Появится
список объектов интерфейса программы
(рис. 4.1.7-5).
Рис.
4.1.7-5. Список объектов Form1
В этом
списке щелкнуть на Button2
из списка всех используемых элементов
управления System.Windows.Forms.
В окне
Свойства
(Properties)
появятся значения свойств второй
кнопки, а VS
2008
выделит Button2
на
форме.
Дважды
необходимо щелкнуть мышью на текущем
свойстве Text
(«Button2»)
и ввести текст «Конец
игры»,
а затем нажать клавишу <Enter>.
Название
второй кнопки формы изменится на «Конец
игры».
Использование
списка Объект
(Object)
является удобным способом переключения
между объектами проекта. Можно
переключаться между объектами формы,
просто щелкая на них.
-
Установить
свойства числовых надписей, для этого
щелкнуть на надписи Label1,
нажать на клавишу <Shift>
и, не отпуская ее, щелкнуть на Label2
и Label3
надписях,
а затем отпустить клавишу <Shift>.
Вокруг
каждой из надписей, на которых щелкнули,
появятся прямоугольники выделения
и манипуляторы изменения размера. Теперь
необходимо изменить свойства TextAlign,
BorderStyle
и
Font
так, чтобы числа, которые будут появляться
в этих метках, находились в центре, имели
рамку и отображались одинаковым шрифтом
одинакового размера. Все эти свойства
расположены в окне Properties
(Свойства)
в категории Appearance.
Необходимо также установить свойство
Autosize
в значение False
с тем, чтобы можно было вручную изменить
размер надписей. Свойство Autosize
расположено в категории Layout.
Обратите
внимание, когда выделяется более одного
объекта, в окне Свойства
(Properties)
отображаются только те свойства, которые
могут быть изменены для всей группы
выделенных объектов.
В окне
Свойства
(Properties)
щелкнуть на свойстве Autosize,
а затем щелкнуть на стрелке, появившейся
справа от свойства.
Установить
свойство Autosize
в значение False
так, чтобы можно было вручную изменить
размер.
Щелкнуть
на свойстве TextAlign,
а затем щелкнуть на стрелке справа.
Появится
список, содержащий набор вариантов
выравнивания текста; эти настройки
позволяют различным образом выравнивать
текст в рамках объекта.
Щелкнуть
на варианте центрирования — MiddleCenter.
Свойство
TextAlign
для всех выделенных надписей изменится
и примет значение MiddleCenter.
Щелкнуть
на свойстве BorderStyle
, а затем на стрелке справа.
В
списке появятся доступные значения
(None,
FixedSingle
и Fixed3D).
Щелкнуть
в этом списке на FixedSingle,
чтобы добавить вокруг каждой надписи
тонкую рамку.
Щелкнуть
на свойстве Font,
а затем на кнопке многоточия (кнопка с
тремя точками, которая расположена
рядом с текущей настройкой шрифта).
Появится
диалоговое окно Шрифт
(Font).
Необходимо
изменить шрифт на Times
New Roman,
стиль шрифта – на Жирный,
а его размер — на 24,
а затем нажать на ОК.
Отображаемый
текст надписей будет иметь выбранный
шрифт, стиль и размер.
Теперь
необходимо изменить текст для всех трех
надписей на цифру 0
— хороший заполнитель для цифр, которые
будут выводиться в этих полях во время
игры.
Щелкнуть
на пустой области формы, чтобы снять
выделение со всех трех надписей, а затем
щелкнуть на Label1.
Дважды
щелкнуть мышью на свойстве Text,
ввести 0,
а затем нажать <Enter>.
Текст
объекта Label1,
будет содержать 0.
Код программы будет помещать в это
свойство случайное число.
Далее
необходимо изменить текст третей и
четвертой надписей формы так, чтобы он
тоже содержал 0.
Далее
необходимо переместить и изменить
размер надписей так, чтобы между ними
было нормальное расстояние.
Форма
выглядит примерно так, как показано на
рис. 4.1.7-6.
Рис.
4.1.7-6. Форма
Form1
с элементами управления Button,
Label
и
PictureBox
и соответствующими надписями
-
Установить
свойства описательной надписи, для
этого щелкнуть на объекте надписи
Label1
формы. В окне Свойства
(Properties)
изменить свойство Text
на значение — Проект-4.1.7-1
– Иванова
И.И.
Щелкнуть
на свойстве Font,
а затем на кнопке многоточия.
Использовать
диалоговое окно Шрифт
(Font)
для изменения шрифта на Arial,
стиля шрифта на жирный и его размера на
18.
Затем щелкните на ОК.
Шрифт надписи объекта Label4
обновится, и благодаря тому, что свойство
Autosize
объекта установлено в значение True,
надпись автоматически изменит размер
так, чтобы в нее поместился шрифт большего
размера. Далее необходимо в окне
Properties
(Свойства)
щелкнуть на свойстве ForeColor,
а затем щелкнуть на стрелке во второй
колонке.
VS
2008
для установки цвета переднего плана
(цвета текста) объекта надписи отобразит
список, содержащий вкладки Польз.
(Custom),
Web
и Системные
(System).
Вкладка Польз.
(Custom)
предлагает многие из цветов, доступных
в вашей системе.
Щелкнуть
на пурпурном
(purple)
цвете на вкладке Польз.
(Custom).
Цвет
текста надписи изменится на пурпурный
цвет.
-
Установить
свойства области изображения, для этого
щелкнуть на объекте области изображения
PictureBox1
формы, щелкнуть в окне Свойства
(Properties)
на свойстве SizeMode
категории Поведение
(Behavior),
щелкнуть на стрелке справа, а затем
щелкнуть на Stretchmage
(Растянуть изображение).
Установка
SizeMode
в значение Stretchmage
(Растянуть изображение)
до открытия файла изображения заставляет
VS
2008
изменить размер изображения так, чтобы
он в точности совпал с размерами области
изображения
Щелкнуть
мышью в окне Свойства
(Properties) на
свойстве Image
категории Внешний
вид (Appearance),
а затем щелкнуть на кнопке многоточия
во втором столбце. В результате появится
диалоговое окно Выбор
ресурса (Select Resource).
Щелкнуть
на опции Локальный
ресурс (Local Resource),
а затем щелкнуть на кнопке Импорт
(Import).
В
диалоговом окне Открыть
(Open)
перейти в папку, например в
Проект-4-1-7-1.
Эта папка содержит рисунок Mtuci.gif.
Выделить Mtuci.gif
затем щелкнуть на Open.
В диалоговом окне Select
Resource
появится рис. 4.1.7-7.
Щелкнуть
ОК.
Рисунок
Mtuci.gif
загрузится в область вывода изображений.
Рис.
4.1.7-7. Диалоговое окно Select
Resource
-
Изменить
заголовок формы, щелкнув в области
Форма1
(Form1),
а затем в правом столбце свойства Text
окна Свойства
(Properties)
и ввести текст
«Проект-4.1.7-1».
Завершенная
форма должна выглядеть, как на рис
4.1.7-1.
-
Написание
программного кода
Теперь
можно написать программный код для
проекта Проект-4.1.7-1.
Так
как
большинство созданных ранее объектов
уже «знают», как им надо работать, при
запуске программы
они будут готовы к приему ввода от
пользователя и его обработке. Встроенная
функциональность объектов является
одной из самых сильных сторон VS
2008 и
VB
2008 -после
того как объекты будут размещены на
форме и их свойства будут установлены,
они готовы к запуску без дополнительного
программирования (визуальное
программирование). Однако основа игры
Счастливая
семерка —
программный код, который реализует
алгоритм вычисления случайных значений,
отображает их в соответствующих полях
и определяет выигрыш
— в программе все еще отсутствует. Эта
программная логика может быть встроена
в
приложение только с помощью операторов
языка программирования VB
2008 -программного
кода, который четко говорит, что программа
должна делать на каждом шаге ее
выполнения. Так как программой управляют
кнопки Играть
и
Конец
игры, программный
код
нашего проекта должен быть связан именно
с этими кнопками. Для ввода и редактирования
операторов программы на VB
2008 предназначено
окно Редактор
программного
кода (Code
Editor).
-
Представить
значение свойств в таблице.
Свойства,
которые были установлены для проекта
Проект-4.1.7-1
в
пошаговом режиме, сведем в таблицу
4.1.7-2. Таблица 4.1.7-1
-
Объект
Свойство
Значение
Button1
Text
»
Играть»Button2
Text
«Конец
игры»Label1, Label2, Label3
Autosize
False
BorderStyle
Fixed
SingleFont
Times
New Roman, Bold, 24Text
«0»
TextAlign
MidleCetnter
Label4
Text
Проект-4.1.7-1-Иванова
И.И.Font
Ariel, Bold, 18-point
ForeColor
Purple
PictureBox1
Image
«d:\VB2008-Информатика-курс-1.Mtuci.gif»
SizeMode
Stretchmage
Visible
False
-
Дописать
код программы для обработки события
нажатия кнопки Button2,
используя окно Редактор
кода (Code Editor).
Дважды щелкнуть мышью на кнопке Конец
игры
приложения.
В
основном окне VS
2008
появится окно панели Редактор
кода (Code Editor),
имеющий
вид документа с вкладкой и показанный
на рис. 4.1.7-8.
Внутри
окна Редактора
кода (Code Editor)
находятся строки кода, связанного с
текущей формой. Операторы программы,
которые используются совместно для
выполнения некоторого действия, обычно
группируются в программные конструкции,
называемые процедурами. Обычным типом
процедуры является процедура Sub,
называемая процедурой-подпрограммой.
Процедуры Sub
в первой строке содержат ключевое слово
Sub
и заканчиваются End
Sub.
Обычно процедуры выполняются при
определенных обстоятельствах, например,
таких, как щелчок по кнопке или вызов
специального оператора. Когда процедура
ассоциирована с конкретным объектом и
событием, она называется обработчиком
события
или событийной
процедурой.
При
двойном щелчке мышью на кнопке Конец
игры
VB
2008
автоматически добавляет первую и
последнюю строки процедуры события
Button2_Click(
)
, как показано на рис. 4.1.7-8. (Первая строка
перенесена на следующую строку, чтобы
не вылезти за поля.) На рис.4.1.7-8 видно,
что в окне Редактор
кода (Code Editor)
есть и другие строки кода, которые VS
2008
добавила для определения важных
характеристик формы.
Тело
процедуры, которое находится между
заголовком процедуры и оператором,
завершающим процедуру – End
Sub,
будет исполняться каждый раз, когда
пользователь активизирует элемент
интерфейса, ассоциированный с этой
процедурой. В данном случае событие —
это щелчок мышью на кнопке Button2,
но как будет показано далее, это может
быть и другой тип события.
Ввести
оператор языка VВ
End,
а
затем нажать на клавишу со стрелкой
вниз.
После
ввода оператора буквы становятся синими
и создаются отступы, что указывает, что
VB
2008
распознал End
как одно из нескольких сотен
зарезервированных — или ключевых слов
языка Visual
Basic.
Ключевое слово End
используется для остановки программы
и удаления с экрана ее формы. В данном
случае End
также является законченным оператором
программы, исполняемой компилятором
VB
2008
— частью VS
2008,
обрабатывающей и выполняющей анализ
каждой строки исходного кода VB
2008
и объединяющей результаты с другими
ресурсами с целью создания исполняемого
файла. Все операторы программы должны
следовать грамматическим правилам
компилятора. В
VS 2008
операторы программ могут состоять из
ключевых слов, свойств, имен объектов,
переменных, чисел, специальных символов
и других значений. При вводе операторов
программы и внесении других изменений
окно Редактор
кода (Code Editor)
выполняет многие задачи, связанные с
форматированием, включая настройку
отступов, пробелов и добавление
необходимых скобок. Точное написание,
порядок и расположение пробелов оператора
программы называется синтаксисом
оператора.
Рис.
4.1.7-8. Программный код проекта Проект-4.1.7-1
При
нажатии на клавишу «стрелка
вниз»
оператор End
был сдвинут так, чтобы он был отделен
от операторов Private
Sub и
End.
Эта схема форматирования является одним
из соглашений программирования и
предназначена для того, чтобы программы
выглядели ясно и читаемо. Соглашения
относительно того, как организуется
код в программе, часто называется стилем
программирования.
Теперь,
когда написан код, связанный с кнопкой
Конец
игры,
необходимо написать код для кнопки
Играть.
-
Написать
программный код, который будет выполняться
при нажатии кнопки Играть,
то
есть
событийную процедуру для
кнопки
Button1.
Чтобы
отобразить форму, щелкнуть в окне
Обозреватель
решений (Solution Explorer)
на кнопке Конструктор
(View
Designer).
В режиме Редактор
программного кода (Code Editor)
форма, с которой производится работа,
не отображается. Кнопка Конструктор
(View Designer)
является одним из тех механизмов, которые
используются для того, чтобы снова
вывести форму на экран. Также можно
щелкнуть на вкладке Form1.vb
[Design].
Дважды
щелкнуть мышью на кнопке Играть.
Через
некоторое время появится окно Редактор
программного кода (Code Editor),
и рядом с процедурой события, связанной
с кнопкой Button2, появится процедура
события, ассоциированная с кнопкой
Button1.
Хотя
текст этой кнопки был изменен на «Играть»,
ее имя в программе осталось Button1.
(Имя и текст элемента интерфейса могут
быть различными для удобства
программирования.) Каждый объект может
иметь несколько связанных с ним процедур
— по одной для каждого распознаваемого
события.
Между
операторами Private
Sub Button1_Click( )
и End
Sub
необходимо ввести строки программы,
показанные на рис. 4.1.7-8.
После
ввода каждой строки необходимо нажимать
<Enter>,
а
для создания отступа необходимо нажать
на <Таb>
и следить за вводом операторов программы
в точности так, как они напечатаны на
рис. 4.1.7-8. (При вводе длинных строк
Редактор
программного кода (Code Editor)
будет прокручивать экран влево.) Если
будет сделана ошибка, которую обычно
легко определить по подчеркиванию
волнистой линией, удалите неверную
строку и введите ее снова.
При
вводе кода программы VB
орматирует
ее текст и отображает различные части
программы различными цветами, которые
помогают распознавать различные
элементы. В момент ввода свойства
отображается список, содержащий все
допустимые свойства объекта, так что
вместо набора свойства вручную можно
дважды щелкнуть на свойстве мышью. Если
VB
отображает сообщение об ошибке, то
оператор, скорее всего, введен с ошибкой.
Сверьте строку с текстом в пособии,
сделайте необходимые исправления и
продолжайте набирать. Также можете
удалить всю строку и начать вводить
ее заново. Кроме того, VB
2008
может автоматически добавлять необходимый
код.
Когда
закончите ввод операторов, окно Редактор
программного кода (Code Editor) должно
выглядеть так, как показано на рис.
4.1.7-8.
-
Сохранить
введенный программный код, щелкнуть
на команде Сохранить
все (Save All)
элемента главного меню Файл
(File).
Команда
Сохранить
все (Save All)
сохраняет все файлы, входящие в проект
– собственно файл проекта, файл формы,
все модули кода и все связанные с
приложением компоненты. Если это
первое сохранение проекта, появится
диалоговое окно Сохранить
проект (Save Project),
запрашивающее имя и место для сохранения
проекта. Если VS
настроена так, чтобы запрашивать место
сохранения проекта при его создании,
то сейчас диалогового окна Сохранить
проект
вы не увидите — VS
2008
просто сохранит все изменения.
Щелкнуть
на кнопке Обзор
(Browse)
справа от текстового поля Место-
положение (Location)
и выбрать место для сохранения файлов.
Необходимо
использовать папку (место, где находятся
файлы лабораторных работ, созданные
студентами). Если необходимо сохранить
только элемент, с которым в настоящий
момент работаете (форму, модуль кода
или что-либо еще), то используется команда
Сохранить
(Save),
также находящаяся в меню Файл
(File).
Если необходимо сохранить текущий
элемент с другим именем, то используется
команда Сохранить
как (Save As).
-
Обсудим
программный код процедуры обработки
события нажатие кнопки Играть,
используя окно Редактор
программного кода (Code Editor).
Процедура
Button1_Click(
)
выполняется тогда, когда пользователь
щелкает на кнопке Играть
формы Form1.
Эта процедура содержит несколько
довольно сложных операторов. Процедура
Button1_Click(
)
выполняет три задачи:
-
скрывает
рисунок; -
создает
три случайных числа, отображаемые в
числовых надписях; -
когда
появляется цифра 7,
она отображает рисунок.
Сокрытие
рисунка выполняется с помощью следующей
строки:
-
PictureBoxl.Visible=False
‘
скрыть
картинку
Эта
строка состоит из двух частей: программного
оператора и комментария. Оператор
программы (PictureBox1.Visible=False)
устанавливает свойство Visible
объекта области вывода изображения
(PictureBox)
равным False
(это одно из двух возможных значений).
Вы, возможно, помните, что только что
установили это свойство равным False
при помощи окна Свойства
(Properties). Сейчас
это снова делается в коде программы,
так как первая задача — это «вращение»,
и фото, которое может остаться на экране
после предыдущей игры, требуется убрать.
Так как это свойство будет изменено во
время работы, а не во время разработки,
нужно установить его с помощью кода
программы. Это удобная функция VB.
Вторая
часть первой строки (часть, отображаемая
на экране зеленым цветом) называется
комментарием.
Комментарии
— это описательные пояснения, включаемые
в программный код после символа апострофа
(‘). Программисты используют комментарии
для описания действия операторов
программы. VB
при
запуске программы не обрабатывает эти
пояснения; они существуют только для
документирования того, что делает
программа. При написании программы
часто придется использовать комментарии,
чтобы оставить легко воспринимаемые
записи о том, что же вы сделали. Следующие
три строки выполняют вычисление случайных
чисел. С помощью специальных действий
можно на самом деле заставить VB
сгенерировать непредсказуемые числа
– другими словами, можно создать
случайные числа для лотерей, игры в
кости или других статистических задач.
Функция Rnd(
)
в каждой из строк создает случайное
число в диапазоне между 0 и 1 (число с
десятичной точкой и несколькими знаками
после нее), а функция Int(
)
возвращает целую часть результата
произведения этого случайного числа
на 10. Это вычисление дает программе
случайные числа между 0 и 9 — именно то,
что требуется для нашего приложения
игрового автомата.
-
Label1.Text=CStr(Int(Rnd(
) * 10)) ‘
выбрать числа
Затем
в коде требуется преодолеть небольшое
препятствие. Вы должны скопировать эти
три случайных числа в три поля надписей
на форме, но сначала числа с помощью
функции CStr(
)
(преобразование в строку) должны быть
преобразованы в текст. Обратите внимание,
как CStr(),
Int()
и Rnd()
объединены
вместе в одном операторе программы –
они работают совместно и дают результат
аналогично математической формуле.
После вычисления и преобразования
значения присваиваются свойствам Text
первых трех надписей формы, и в результате
этого числа отображаются в этих трех
надписях жирным шрифтом Times
New Roman
с размером 24
пункта. Последняя группа операторов
программы проверяет, не равняется ли 7
одно из случайных чисел. Если одно или
несколько из этих чисел равно 7,
то программа отображает изображение,
а звуковой сигнал свидетельствует о
победе:
-
‘если
одна из цифр-7, то отобразить картинку
и издать звукIf
(Label1.Text = «7»)
Or
(Label2.Text = «7»)
_Or
(Label3.Text = «7»)
Then
PictureBoxl.Visible
= TrueBeep()
End
if
Каждый
раз, когда пользователь щелкает на
кнопке Играть,
выполняется (вызывается) процедура
Button1_Сlick(
),
и снова выполняются операторы программы,
содержащиеся в этой процедуре (рис.
4.1.7-8).
-
Технология
IntelliSense
и точечная нотация
Теперь
известно, как с помощью VB
2008
читать и записывать значения свойств
форм и элементов управления. Если у
каждой формы и элемента управления
много свойств, как за ними уследить? Не
слишком удобно постоянно переключаться
между редактором кода и окном Свойства,
чтобы выяснить, какие свойства нам
нужны. Имеется более удобный способ.
Можно
использовать технологию IntelliSense.
Это часть VS
2008.
IntelliSense
позволяет
сохранять время при редактировании
программного кода в окне редактора.
IntelliSense
знает, к какому элементу управления
обращаются, и какие
у него
есть свойства. Оно выводит список свойств
и позволяет вам выбирать из него нужное.
Используемое чаще всего свойство
подсвечивается, когда IntelliSense
отображает список. Например, для
текстового поля изначально подсвечивается
свойство Text.
С помощью стрелок вверх и вниз на
клавиатуре можно просматривать список
и выбирать то свойство, которое вам
требуется. При нажатии клавиши <Tab>
выбранное свойство добавляется в код.
Используя IntelliSense,
не придется запоминать все свойства
всех элементов управления. Кроме того,
данное средство заметно сокращает
потребность в наборе длинных имен
на клавиатуре!
Рассмотрим
это на примере.
Введем
с клавиатуры PictureBox1
и нажмем клавишу «точка» — рис. 4.1.7-9. Как
только вы введете точку, IntelliSense
отобразит список свойств элемента
PictureBox1.
Поскольку PictureBox1
— изображение, этот список будет таким
же, как и для любого другого изображения
на форме. По умолчанию в списке IntelliSense
подсвечивается
чаще всего используемое свойство
(рис. 4.1.7-9).
Рис.
4.1.7-9. Свойства PictureBox1, отображаемые с
помощью IntelliSense
Если
далее будет введена буква, например
буква «V»,
IntelliSense
прокрутит список до первого по
алфавиту свойства, начинающегося с
«V».
По мере ввода IntelliSense
ищет в списке свойство, наиболее
соответствующее введенным буквам.
Когда
свойство подсвечивается в списке
IntelliSense,
рядом появляется подсказка, кратко
его описывающая. Эта подсказка,
например, может сообщить, если свойство
доступно только для чтения (Read
Only,
т. е. ему нельзя присваивать значение).
Кроме того, подсказка сообщает, какие
значения можно присваивать свойству,
например, строку (текст) или целое число.
-
Выполнение
приложения VB 2008
Чтобы
запустить программу VB
2008 из
среды разработки, необходимо сделать
одно из следующего:
-
выполнить
команду Начать
отладку (Start
Debugging)
элемента
меню Отладка
(Debug); -
щелкнуть
на кнопке Начать
отладку (Start
Debugging)
на
стандартной панели инструментов; -
нажать
<F5>.
-
Запустить
проект Проект-4.1.7-1.
Если VB
2008
выводит сообщение об ошибке, то при
вводе кода программы, вероятно, была
допущена одна или несколько ошибок.
Следует исправить их, сравнив то, что
было введено, с вариантом из этого
пособия.
Если
все было сделано правильно, то
Проект-4.1.7-1
будет компилироваться, и запустится
в VS
2008.
Через некоторое время появится
созданный интерфейс пользователя,
ожидающий действий от пользователя.
-
Далее
необходимо щелкнуть на кнопке Играть.
Программа
сгенерирует три случайных числа и
отобразит их в надписях на форме, как
показано на рис. 4.1.7-10. Так как в поле
надписи появилась 7, появится рисунок,
означающий выигрыш, и компьютер издает
звуковой сигнал. Вы выиграли! (Звук,
который вы услышите, зависит от настроек.)
Рис. 4.1.7-10. Результаты
работы проекта Проект-4.1.7-1
Щелкните
на кнопке Играть
еще
раз, наблюдая за результатом в числовых
полях. Для окончания эксперимента с
вашим новым проектом щелкните на кнопке
Конец
игры.
Программа остановится и на экране снова
появится среда разработки.
-
Внесение
изменений в программу
В
любое время можно перезапустить VS
2008
и работать с программным проектом,
сохраненным на вашем диске. Снова
запустить VS
2008
и добавить в проект
Проект-4.1.7-1
оператор Randomize:
-
Запустить
VS
2008.
На
стартовой странице VS
2008
появится список недавно открывавшихся
проектов. Так как только что закончили
работать с Проект-4.1.7-1,
первым проектом в этом списке должен
быть проект Проект-4.1.7-1.
-
Чтобы
открыть проект Проект-4.1.7-1,
щелкнуть на ссылке Проект-4.1.7-1
.
Откроется
проект Проект-4.1.7-1
и появится форма.
Далее
вы должны добавить в процедуру
Form1_Load(
), специальный
оператор, который связан с формой и
исполняется каждый раз при запуске
программы — оператор Randomize
Чтобы
отобразить на экране процедуру Form1_Load(
), сделайте
на форме (но не на одном из ее объектов)
двойной щелчок мышью.
В окне
Редактор
программного кода (Code Editor)
появится процедура Form1_Load(
).
-
Ввести
в программный код оператор Randomize,
а затем нажать на клавишу со стрелкой
вниз.
Оператор
Randomize
добавится в программу и будет исполняться
каждый раз при ее запуске. Чтобы создать
истинно случайную начальную точку для
функции Rnd(
),
используемой в процедуре Button_Click(
), Randomize
использует системные часы. Без оператора
Randomize
Проект-4.1.7-1
при
каждом ее запуске производит одну и ту
же последовательность случайных чисел.
При наличии Randomize
программа при каждом запуске генерирует
новую последовательность случайных
чисел.
-
3апустить
новую версию Проект-4.1.7-1,
а затем сохраните проект. -
Когда
закончите работу с проектом, выполните
команду Закрыть
проект (Close Project)
в элементе главного меню Файл(File).
Файлы,
связанные с программой Проект-4.1.7-1,
будут закрыты.
-
Создать
исполняемый файл
Последней
задачей этого примера является завершение
процесса разработки и создание приложения
для MS
Windows,
или
исполняемого файла (при условии, что
полученное решение
соответствует заданию). Приложения для
MS
Windows,
созданные
в VS
2008, имеют
расширение .ехе
и могут выполняться на любой системе,
имеющей MS
Windows
и
необходимые
файлы поддержки. (VB
2008 устанавливает
все эти файлы, включая файл .NET
Framework,
автоматически.)
В
данный момент необходимо знать, что VB
2008 может
создавать два типа исполняемых файлов:
отладочный и окончательный.
Отладочные
версии создаются VS
2008 автоматически
при создании и тестировании программы.
Они сохраняются в папке, которая
расположена в папке проекта, и называются
\bin\debug.
Отладочный
исполняемый файл обычно содержит
отладочную информацию, из за которой
программа выполняется более медленно.
Окончательные версии — это оптимизированные
исполняемые файлы, сохраняемые в папке
проекта
bin\release.
Чтобы
установить параметры для окончательной
версии, выполнить команду
Свойства:
Проект-4.1.7-1...
элемента
главного меню Проект
(Project),
а
затем щелкнуть на вкладке Компиляция
(Compile),
где
находится перечень опций компилятора
рис. 4.1.7-11.
Рис.
4.1.7-11
Далее необходимо
реализовать следующие шаги.
-
В
элементе главного меню Построение
(Build)
выполнить
команду Построить
Проект-4.1.7-1
(Вuild
Project-4.1.7-1).
Команда
Построить
(Вuild)
для сохранения файла создает папку с
именем bin\release
(если она еще не существует) и компилирует
исходный код проекта.
Результатом
этого является исполняемый файл с именем
Проект-4.1.7-1.ехе.
-
Теперь
необходимо запустить эту программу
вне VS
2008,
используя команду
Run
(Выполнить)
из меню Start
(Пуск)
MS
Windows.
Появится
диалоговое окно
Run.
-
Щелкните
на Browse
(Обзор),
а затем перейдите в папку \release. -
Щелкните
на пиктограмме приложения
Проект-4.1.7-1.ехе,
щелкните на Open
(Открыть),
а затем щелкните на ОК.
Программа
Проект-4.1.7-1
загрузится
и запустится в Windows.
-
Щелкните
несколько раз на кнопке Играть
формы, чтобы проверить
работоспособность
проекта, а затем щелкните на кнопке
Конец.
(Можно
запустить приложения для MS
Windows,
включая откомпилированные программы
VB
2008,
открыв проводник MS
Windows).
-
Чтобы
закрыть VS
2008
и проект Проект-4.1.7-1,
в меню Файл
(File)
выполните команду Выход
(Exit).
Среда
разработки VS
2008
закроется.
-
Выход из Visual
Studio 2008
Сохранить
все изменения, которые вы сделали в
вашей программе, можно щелкнув на кнопке
Сохранить
все (Save
All)
на
стандартной панели инструментов.
Поведением
по умолчанию Visual
Studio
2008 является
ситуация, когда
программе
имя присваивается
при создании проекта, но при этом не
указывается местоположение файла и не
сохраняется проект до тех пор,
пока не щелкните
на кнопке Сохранить
все (Save
Аll)
или
не выполните команду Сохранить
все (Save
Аll) из
элемента главного меню Файл
(File),
в
связи с тем, что в проект внесено
несколько
изменений.
В
меню Файл
(File)
выполните
команду Выход
(Exit).
Visual
Studio
закроется.
Счастливая
семерка
Создадим приложение, имитирующее
игровой автомат. Начало игры задается Вами щелчком на кнопке Играть.
В окне приложения появляются три
случайных одноразрядных
десятичных числа. Если хотя бы одно из них равно 7, то Вы выиграли и
появляется изображение стопки золотых монет (жаль, что только изображение).
Если же ни одно из трех выпавших чисел не равно 7, то Вы проиграли, и
изображение стопки монет не появляется (хорошо, что еще не нужно платить).
Наконец, когда Вам надоело играть, щелчком на кнопке Выход Вы можете закрыть
Вашу прикладную программу.
1. Проектирование
интерфейса
Итак, приступим к проектированию приложения. Начнем
с интерфейса, который должен выглядеть примерно так, как это показано на рис.
1.
Рис. 1. Расположение
объектов, применяемых в проекте
1.
Создайте в корневом каталоге диска d свою рабочую папку, в которой во время
занятия будут храниться файлы Вашего проекта.
3.
Создайте на форме две кнопки управления, расположив
их, как показано на рис. 1. На кнопке Command1 Вы будете щелкать, чтобы
начать игру. Щелчок на кнопке Command2 будет указанием закрыть
приложение.
4.
Создайте рамку Frame1 в правом верхнем углу формы (см. рис.
1), в которой будут размещены три надписи, предназначенные для вывода случайных
цифр.
5.
Создайте внутри рамки слева первую из трех
надписей – надпись Label1. Чтобы размеры всех трех надписей были одинаковы, удобно
оставшиеся две получить копированием уже созданной надписи. Для копирования
надписи выполните следующую последовательность действий:
5.1. Щелкните на поле надписи Label1,
чтобы сделать ее активным объектом.
5.2. Нажмите Contrl+C, чтобы
скопировать объект в буфер обмена Windows.
5.3. Щелкните на рамке Frame1,
чтобы сделать ее активным элементом. Тем самым Вы назначаете рамку приемником
для следующей операции вставки.
5.4. Нажмите Contrl+V, чтобы в
рамке создать дубликат надписи.
5.5. Внимание! На экране появится окно с
сообщением о том, что объект с именем Label1 уже существует и с
предложением создать массив объектов. В диалоговом окне нажмите на кнопку No
(Нет). Будьте
внимательны! Если Вы отреагируете иначе, то Вы рискуете создать
массив надписей, что чревато появлением трудно диагностируемых ошибок при
разработке кода.
5.6. Появившийся дубликат надписи
Label1 переместите в правую часть рамки.
5.7. Для получения третьей надписи повторите
выполнение пунктов 5.3 – 5.5.
5.8. Поместите полученный
дубликат надписи Label1 посредине
между первыми двумя надписями.
6.
Создайте
надпись Label4 (она будет содержать название игры) и надпись Label5
(она будет содержать шифр группы и фамилии студентов бригады – исполнителей
задания).
7.
Теперь создайте поле рисунка, в котором при
выигрыше пользователя будет появляться изображение столбика монет. В правый
нижний угол формы поместите с помощью элемента Image (рисунок) поле
рисунка. Для этого щелкните на кнопке Image в окне элементов и создайте
прямоугольное поле в правом нижнем углу формы. Созданный объект будет назван Image1.
Соглашение об именах основных объектов
При назначении объекту имени рекомендуется его имя
начинать с трехбуквенного префикса, отражающего тип объекта. Остальная часть
имени должна напоминать о назначении объекта. Например, для кнопки Command2,
предназначенной для завершения игры, вместо имени Command2 было бы
удобнее применить имя cmdВыход.
Здесь первая часть имени, состоящая из трех символов, указывает, что объект
является кнопкой, а вторая говорит о назначении объекта.
Рекомендуется применять следующие префиксы имен
объектов:
Объект |
Префикс |
Кнопка |
cmd |
Рамка |
fra |
Форма |
frm |
Рисунок |
img |
Надпись |
lbl |
Линия |
lin |
Список |
lst |
Графическое поле |
pic |
Фигура |
shp |
Таймер |
tmr |
Текстовое поле |
txt |
8.
Сохраните форму Form1 под именем frmГлавная
в рабочей папке, а также сохраните проект, задав ему имя СчастливаяСемерка.
3. Установка свойств
объектов
Рис. 2 Готовый
интерфейс проекта
9.
Установите такие значения свойств объектов,
чтобы интерфейс проекта соответствовал рис. 2. При этом Вам придется обратиться
к следующим свойствам:
Alignment – для выбора
вида выравнивания текста на объекте;
BackColor – для установки
цвета фона;
Caption – для задания
текста на объекте;
Font – для изменения
параметров текста;
ForeColor – для установки
цвета текста на объекте.
С целью сокращения затрат
времени на задание значений свойств, при необходимости задать одинаковое
значение одному и тому же свойству нескольких объектов, следует эти объекты
объединить в группу выделенных объектов. Для этого нужно выделить объекты при
нажатой клавише Shift. Когда выделена группа объектов, заданное значение свойства
становится значением соответствующего свойства всех объектов выделенной группы.
Command1 – CmdИграть, Command2 – CmdВыход,
Label1 – LblЧисло1, Label1 – LblЧисло2, Label1 – LblЧисло3,
Image1 – ImgВыигрыш.
– Stretch (Вытягивание) для
установления точного размера картинки по размеру окна;
– Picture (Рисунок) для
указания имени графического файла, который загружается в окно;
12.1. Выделите
объект «рисунок» на форме.
12.2. Щелкните на свойстве Stretch
(Вытягивание) в окне свойств, затем щелкните на стрелке, чтобы вызвать список,
и в списке щелкните на значении True.
Теперь картинка точно будет вписана в поле рисунка.
12.3. Дважды
щелкните на свойстве Picture (Рисунок) в окне свойств.
Появиться диалоговое окно Load Picture (Загрузить рисунок).
Войдите в папку kladovka (о
том, где она находится, чуть позже). Среди файлов этой папки выделите файл Coins.wmf и щелкните на кнопке Open.
Файл будет загружен в окно в поле рисунка на форме.
Доступ к папке kladovka может быть получен
несколькими способами:
o
Если Вы работаете в компьютерном классе ИВЦ МЭИ,
то в локальной сети k:\FP\Inf\kladovka.
o
Или если Вы имеете лазерный диск «Обучающий
комплекс Информатика на основе Visual
Basic 6.0», то Informatic\Informatika\kladovka.
o
Или скачайте архив этой папки на свой компьютер
с сайта http://glagolevvb.narod.ru
и выполните
разархивацию архивного файла (в окне программы Проводник для этого выделите
этот файл и выполните команду контекстного меню Extract to…).
13.
Сохраните проект.
4. Составление программного
кода
Ниже приведен программный код проекта:
Option Explicit
Private
Function СлучайноеЧисло_0_9()
As Byte
СлучайноеЧисло_0_9 = Int(Rnd * 10)
End Function
Private Sub
Form_Load()
Randomize
End Sub
Private Sub cmdИграть_Click()
ImgВыигрыш.Visible = False
LblЧисло1.Caption = СлучайноеЧисло_0_9()
LblЧисло2.Caption = СлучайноеЧисло_0_9()
LblЧисло3.Caption = СлучайноеЧисло_0_9()
5: If (LblЧисло1.Caption = 7) Or _
(LblЧисло2.Caption = 7) Or _
(LblЧисло3.Caption = 7) Then
ImgВыигрыш.Visible = True
Beep
10: End If
End Sub
Private Sub cmdВыход_Click()
End
End Sub
Программа содержит объявление функции с именем СлучайноеЧисло_0_9,
которая возвращает случайное одноразрядное целое число из диапазона от 0 до 9.
В этой функции применяется функция Rnd, которая возвращает числовое
значение с плавающей точкой, значение которого удовлетворяет условию 0<=Rnd<1,
а также применяется функция Int, возвращающая целую часть аргумента.
Первая строка тела процедуры cmdИграть_Click,
которая выполняется при щелчке левой клавишей мыши на кнопке cmdИграть,
скрывает рисунок с изображением стопки монет. В строках 2 – 4 содержатся три
обращения к функции СлучайноеЧисло_0_9, которые обеспечивают выработку
трех случайных целых одноразрядных чисел. Строки 5 – 10 обеспечивают появление
рисунка со стопкой монет и подачу сигнала, если хотя бы одно из полученных трех
случайных чисел равно семи.
Процедура Form_Load выполняется при
загрузке формы. Единственная строка этой процедуры обеспечивает инициализацию
функции Rnd.
Если этого не сделать, то после каждого запуска приложения будет генерироваться
одна и та же последовательность случайных чисел. Если хотите, проверьте. Для
этого достаточно поставить апостроф (‘) перед оператором Randomize,
превратив его тем самым в комментарий, и пару раз запустить приложение, записав
при каждом запуске начальную часть последовательности вырабатываемых случайных
чисел. Если сравните сделанные записи, то убедитесь в их совпадении.
14.
Введите код программы и сохраните проект. Для
вставки в программу функции СлучайноеЧисло_0_9 воспользуйтесь командой Tools,
Add
Procedure.
15.
Запустите приложение и проверьте его работу.
16.
Закройте VB.
17.
Удалите свою рабочую папку на диске d.
5. Вопросы для
контроля
1. Для чего предназначен элемент Image?
2. Как создать группу выделенных объектов?
3. Каково назначение свойств BackColor,
ForeColor?
4. Каково назначение свойств поля рисунка Stretch,
Visible, Picture?
5. Что означает имя Rnd?
6. Что означает имя Int?
7. Как изменится работа проекта, если в
процедуре Form_Load удалить инструкцию Randomize?
POCO, ACE, Loki и другие продвинутые C++ библиотеки
NullReferenced 13.05.2025
В C++ разработки существует такое обилие библиотек, что порой кажется, будто ты заблудился в дремучем лесу. И среди этого многообразия POCO (Portable Components) – как маяк для тех, кто ищет. . .
Паттерны проектирования GoF на C#
UnmanagedCoder 13.05.2025
Вы наверняка сталкивались с ситуациями, когда код разрастается до неприличных размеров, а его поддержка становится настоящим испытанием. Именно в такие моменты на помощь приходят паттерны Gang of. . .
Создаем CLI приложение на Python с Prompt Toolkit
py-thonny 13.05.2025
Современные командные интерфейсы давно перестали быть черно-белыми текстовыми программами, которые многие помнят по старым операционным системам. CLI сегодня – это мощные, интуитивные и даже. . .
Конвейеры ETL с Apache Airflow и Python
AI_Generated 13.05.2025
ETL-конвейеры – это набор процессов, отвечающих за извлечение данных из различных источников (Extract), их преобразование в нужный формат (Transform) и загрузку в целевое хранилище (Load). . . .
Выполнение асинхронных задач в Python с asyncio
py-thonny 12.05.2025
Современный мир программирования похож на оживлённый мегаполис – тысячи процессов одновременно требуют внимания, ресурсов и времени. В этих джунглях операций возникают ситуации, когда программа. . .
Работа с gRPC сервисами на C#
UnmanagedCoder 12.05.2025
gRPC (Google Remote Procedure Call) — открытый высокопроизводительный RPC-фреймворк, изначально разработанный компанией Google. Он отличается от традиционых REST-сервисов как минимум тем, что. . .
CQRS (Command Query Responsibility Segregation) на Java
Javaican 12.05.2025
CQRS — Command Query Responsibility Segregation, или разделение ответственности команд и запросов. Суть этого архитектурного паттерна проста: операции чтения данных (запросы) отделяются от операций. . .
Шаблоны и приёмы реализации DDD на C#
stackOverflow 12.05.2025
Когда я впервые погрузился в мир Domain-Driven Design, мне показалось, что это очередная модная методология, которая скоро канет в лету. Однако годы практики убедили меня в обратном. DDD — не просто. . .
Исследование рантаймов контейнеров Docker, containerd и rkt
Mr. Docker 11.05.2025
Когда мы говорим о контейнерных рантаймах, мы обсуждаем программные компоненты, отвечающие за исполнение контейнеризованных приложений. Это тот слой, который берет образ контейнера и превращает его в. . .
Micronaut и GraalVM — будущее микросервисов на Java?
Javaican 11.05.2025
Облачные вычисления безжалостно обнажили ахиллесову пяту Java — прожорливость к ресурсам и медлительный старт приложений. Традиционные фреймворки, годами радовавшие корпоративных разработчиков своей. . .