Создать проект «Выделение активной кнопки» Практическая работа №13 Создание проекта с использованием кнопочных компонентов Цели работы: - Освоить принципы создания приложений с использованием кнопочных компонентов.
- Закрепить навыки по работе с синтаксисом языка С++.
Задание 1 Создать проект «Цветная кнопка» Пояснение: у компонента Button нельзя установить цвет фона и цвет надписи, хотя у этого компонента присутствует свойство Font. Что требуется от кнопки? В основном реакция на щелчок кнопкой мыши и отображение, что кнопка была нажата. Самый быстрый вариант — использовать в качестве кнопки компонент Panel, а надпись выполнить с помощью компонента Label. При этом легко изменить цвет панели и выбрать любой вариант форматирования шрифта для компонента Label. При нажатии кнопки будет изменяться тип обрамления для компонента Panel и смещаться надпись на два пиксела вниз и вправо для полной иллюзии нажатия кнопки. Когда щелчок завершен,возвращаются начальные установки. Ход работы: - Откройте новое приложение. Расположите на форме компонент Panel1, на нем разместите компонент Label1, растяните его по размеру компонента Panel1. Надпись у компонента Panel1 уберите.
1. Выделите компонент Panel1, в инспекторе объектов перейдите на вкладку Events, найдите там событие OnMouseDown, дважды щелкните напротив этого события. Получиться процедура Panel1MouseDown,в ней напишите операторы: Panel1->BevelOuter=bvLowered; Label1->Top=Label1->Top+2; Label1->Left=Label1->Left+2; 2. Аналогично создайте процедуру Panel1MouseUp,в ней напишите операторы: Panel1->BevelOuter=bvRaised; Label1->Top=Label1->Top-2; Label1->Left=Label1->Left-2; 3. Измените надпись на компоненте Label1 на «Кнопка», измените цвет надписи. Измените надпись формы. 4. Запустите приложение на выполнение, проверьте работу созданной имитации кнопки.  Задание 2 Создать проект «Выделение активной кнопки» Пояснение: можно изменять шрифт надписи при перемещении указателя мыши над кнопкой, что дополнительно выделит активную кнопку. Информация о текущей кнопке нужна в двух обработчиках событий: при передвижении указателя над какой-либо кнопкой и при передвижении указателя в оставшейся части. Для этих действий в программе необходимо создать глобальную переменную SenderButton, которая будет содержать информацию об активной кнопке. Чтобы определить активную кнопку, в обработчике для кнопки OnMouseMove нужно будет записать следующую команду: SenderButton=(TButton*)Sender; Для активной (например, Button1) кнопки добавляется жирное начертание следующим образом: SenderButton—>Font—>Style=Button1—>Font->Style<<fsBold; Когда указатель выходит за пределы активной кнопки, шрифт для выбранной ранее кнопки вновь должен становиться прежним: SenderButton->Font->Style=Button1->Font->Style>>fsBold; Чтобы постоянно не выполнять описанные выше действия, необходимо ввести переменную pr типа bool. Эта переменная имеет значение true, если указатель находится над кнопкой. Иначе переменная имеет значение false. При движении над кнопкой шрифт надписи изменяется только тогда, когда переменная pr имеет значение false, то есть в момент зафиксированного входа в область кнопки. При выходе за пределы кнопки переменная имеет значение true. Ход работы: 1. Откройте новое приложение. Расположите на форме три компонента Button.  2. В разделе описаний после описания формы напишите: TForm1 *Form1; bool pr ; TButton *SenderButton; 3. Создайте процедуру Button1MouseMove,в ней напишите: SenderButton=(TButton*)Sender; //над чем мы находимся SenderButton->Font->Style=Button1->Font->Style<<fsBold; pr=true; 4. Создайте процедуру FormMouseMove, в ней напишите: if (pr) { SenderButton->Font->Style=Button1->Font->Style>>fsBold; pr=false; } 5. Создайте процедуру FormCreate, в ней напишите: pr=false; 6. Добавьте процедуры для кнопок Button2 и Button3, чтобы при прохождении над этими кнопками их надписи выделялись жирным начертанием. 7. Измените надписи кнопок и формы:  8. Запустите приложение на выполнение, проверьте начертания надписей, когда мышь проходит над кнопкой.Предъявите результат преподавателю. |