Программирование с C++ Builder



Форма приложения



Главная (стартовая) форма игры "Сапер" приведена на рис. 10.10.



Рис. 10.10. Главная форма программы "Сапер"


Следует обратить внимание на то, что размер формы не соответствует размеру игрового поля. Нужный размер формы будет установлен во время работы программы. Делает это функция обработки события onFormActivate , которая на основе информации о размере игрового поля (количестве клеток по вертикали и горизонтали) и размере клеток устанавливает значения свойств clientHeight и clientwidth , определяющие размер клиентской области главного окна программы.

Главное окно программы содержит компонент MainMenu 1 , который представляет собой главное меню программы. Значок компонента MainMenu находится на вкладке Standard (рис. 10.11).



Рис. 10.11. Компонент MainMenu


Значок компонента MainMenu можно поместить в любое место формы, т. к. во время работы программы он не виден. Пункты меню появляются в верхней части формы в результате настройки компонента. Для настройки меню используется редактор меню, который запускается двойным щелчком левой кнопкой мыши на значке компонента или путем выбора из контекстного меню компонента команды Menu Designer . В начале работы над новым меню, сразу после добавления компонента к форме, в окне редактора находится один-единственный прямоугольник — заготовка пункта меню. Чтобы превратить эту заготовку в меню, нужно в поле Caption окна Object Inspector ввести название меню.

Если перед какой-либо буквой в названии меню ввести знак &, то во время работы программы можно будет активизировать этот пункт меню путем нажатия комбинации клавиши <Alt> и клавиши, соответствующей символу, перед которым стоит знак &. В названии меню эта буква будет подчеркнута.

Чтобы добавить в главное меню элемент, нужно в окне редактора меню выбрать последний (пустой) элемент меню и ввести название нового пункта.

Чтобы добавить в меню команду, нужно выбрать тот пункт меню, в который надо добавить команду, переместить указатель активного элемента меню в конец списка команд меню и ввести название команды.

На рис. 10.12 приведено окно редактора меню, в котором находится меню программы "Сапер".

После того как будет сформирована структура меню, нужно, используя окно Object Inspector , выполнить настройку элементов меню (выбрать настраиваемый пункт меню можно в окне формы приложения или из списка объектов в верхней части окна Object Inspector ). Каждый элемент меню (пункты и команды) — это объект типа TMenuitem . Свойства объектов TMenuitem (табл. 10.3) определяют вид меню во время работы программы.



Рис. 10.12. Структура меню программы "Сапер"


Таблица 10.3. Свойства объекта TMenuItem


Свойство

Определяет

Name

Имя элемента меню. Используется для доступа к свойствам

Caption

Название меню или команды

Bitmap

Значок, который отображается слева от названия элемента меню

Enabled

Признак доступности элемента меню. Если значение свойства равно false , то элемент меню недоступен, при этом название меню отображается серым цветом


При выборе во время работы программы элемента меню происходит событие click . Чтобы создать процедуру обработки этого события, нужно в окне формы выбрать пункт меню и щелкнуть левой кнопкой мыши — C++ Builder создаст шаблон процедуры обработки этого события. В качестве примера ниже приведена функция обработки события click , которое возникает в результате выбора из меню ? команды Справка , N3 — это имя элемента меню, соответствующего этой команде.

// выбор в меню "?" команды Справка
void __fastcall TForml::N3Click(TObject *Sender)
{
WinHelp(Forml->Handle,"saper.hlp",HELP_CONTEXT,1); }