Изучение управляющего элемента CheckBox
Изучать управляющий элемент CheckBox лучше, написав программу, например, расчета стоимости электронного заказа по меню. Список блюд выбирается с помощью компонента CheckBox. При выборе какого-либо блюда автоматически высчитывается стоимость заказа (при установлении флажка – счет увеличивается на стоимость блюда, при снятии – уменьшаться на соответствующее значение). При нажатии на кнопку «Заказать» появляется сообщение об успешном заказе с общим счетом заказа. Для создания формы используются компоненты: Label – для подписей; CheckBox – для выбора; Edit – для вывода; Button – для инициирования вычислений. Рекомендуемая компоновка формы программы представлена на рисунке 5.
Рисунок 5 – Рекомендуемая компоновка формы
Для создания такой формы необходимо выполнить следующие действия. 1. Запустить C ++ Builder. При запуске автоматически создается новый проект. 2. На панели компонентов выбрать вкладку Standard, выбрать компонент Label и щелкнуть левой кнопкой мыши по форме. На этой же вкладке выбрать компонент CheckBox , Edit и Button . Расположить три объекта Label, семь объектов CheckBox, один объект Edit и один объект Button на форму как показано на рисунке 5. 3. Изменить подпись формы. Для этого выбрать форму (щелкнуть по заголовку формы) и в окне свойств объекта во вкладке Properties изменить значение свойства Caption. Вместо подписи Form1 ввести «Меню».
Рисунок 6 – Свойство формы Caption (подпись)
4. Изменить подписи объектов Label1 - Label3 в соответствии с рисунком 6. Для этого выбрать каждый объект Label и в окне свойств объекта во вкладке Properties изменить значение свойства Caption. 5. Изменить подписи объектов CheckBox1 - CheckBox7. Название блюд можно придумать самим. Для изменения подписи объекта CheckBox выбрать каждый объект CheckBox и в окне свойств объекта во вкладке Properties изменить значение свойства Caption. 6. Выбрать объект Edit1 и в окне свойств объекта во вкладке Properties присвоить свойству Text значение «0» (ноль). 7. Поскольку объект Edit1 используется для вывода результата (то есть заполняться он будет по нажатию на кнопку, а не вручную), нужно изменить его свойство ReadOnly на значение true (то есть сделать объект Edit1 только для чтения). 8. Изменить подпись кнопки Button1. Для этого выбрать объект Button1 и в окне свойств объекта во вкладке Properties изменить значение свойства Caption на «Заказать». 9. Изначально ни одно блюдо не выбрано и общая стоимость заказа (счет) равна нулю. Для расчета общей стоимости заказа необходимо объявить глобальную переменную и задать ей значение 0 (ноль). Для этого нужно выделить форму и в окне свойств объекта во вкладке Events (События) дважды щелкнуть левой кнопкой мыши напротив события OnCreate. Перед заготовкой функции объявим переменную schet, а в теле функции приравняем переменную schet к нулю. 10. Каждое блюдо из меню должно иметь свою стоимость. Допустим, цены на блюда будут следующие: - Фаршированная форель 369 руб.; - Телятина под соусом 349 руб.; - Крем-суп из шампиньонов 189 руб.; - Рулет со шпинатом 179 руб.; - Пицца гавайская 299 руб.; - Ванильный коктейль 149 руб.; - Напиток грейпфрут 199 руб.
Стоимость каждого блюда должна быть записана в массив price, который должен выглядеть следующим образом:
Стоимость заказа должна состоять из стоимости выбранных блюд. Например, при выборе фаршированной форели (нулевой элемент в массиве) стоимость заказа должна увеличиться на 369 руб., то есть sсhet = schet + price [0]; Если отказываются от форели (то есть снимается галочка), то стоимость заказа должна уменьшится на 369 руб., то есть schet = schet - price [0]; Точно также должны обрабатываться остальные блюда.
//объявление массива с ценами блюд float price[7]={369, 349, 189, 179, 299, 149, 199}; /* Фаршированная форель 369 руб. - 0-ой элемент массива Телятина под соусом 349 руб. - 1-ой элемент массива Крем-суп из шампиньонов 189 руб. - 2-ой элемент массива Рулет со шпинатом 179 руб. - 3-ой элемент массива Пицца Гавайская 299 руб. - 4-ой элемент массива Ванильный коктейль 149 руб. - 5-ой элемент массива Напиток Грейпфрут 199 руб. - 6-ой элемент массива */
//объявление глобальной переменной для хранения общей стоимости заказа float schet;
//функция выполняется при запуске программы в момент создания формы void __fastcall TForm1:: FormCreate(TObject *Sender) { schet=0; //изначально счет равен нулю }
11. Для создания функции-обработчика нажатий для объекта CheckBox1 – необходимо дважды щелкнуть по нему левой кнопкой мыши. В появившейся заготовке функции необходимо написать программный код, который будет выполнятся при установке или снятию флажка в объекте CheckBox1. Пример кода для объекта CheckBox1 (Фаршированная форель 369 руб.) приведен ниже:
//функция-обработчик события, которое происходит при нажатии на CheckBox1 void __fastcall TForm1:: CheckBox1Click(TObject *Sender) { if (CheckBox1-> Checked==true) //условие. Если галочка стоит, то schet=schet+price[0]; //увеличиваем счет на стоимость блюда else schet=schet-price[0]; //иначе уменьшаем счет на стоимость блюда Edit1-> Text=FloatToStr(schet); //вывод счета в поле объекта Edit1 }
Так же создаются и функции-обработчики для остальных пунктов меню (объектов CheckBox2 - CheckBox7). 12. При нажатии на кнопку «Заказать» должно появиться сообщение о принятии заказа. В сообщении должна быть указана общая стоимость заказа. Для обработки нажатия кнопки необходимо дважды щелкнуть левой кнопкой мыши на объекте Button1 и в появившейся заготовке функции написать программный код:
void __fastcall TForm1:: Button1Click(TObject *Sender) { AnsiString s; //объявляем строковую переменную //строка s должна содержать общую стоимость заказа //составление строки s s=" Ваш заказ на сумму " + FloatToStr(schet) + " руб. принят"; //вывод информационного сообщения о сделаном заказе MessageDlg(s, mtInformation, TMsgDlgButtons()< < mbOK, 0); }
Сохраняется проект нажатием кнопки на панели инструментов. Далее проводится отладка и тестирование программы.
|