- •Объектно-ориентированное программирование
- •Оглавление
- •Лабораторная работа №1 Простой диалог Цель работы
- •Методические указания
- •1. Добавление нового компонента
- •2. Метка Label (страница Standard)
- •3. Окно редактирования Edit (страница Standard)
- •4. Кнопки Button, BitBtn (страницы Standard, Additional)
- •5. Компонент CheckBox (страница Standard)
- •6. Компоненты GroupBox, RadioButton (страница Standard)
- •7. Компонент ComboBox (страница Standard)
- •Пример выполнения задания
- •Int a, b, c; //стороны
- •Задания
- •Лабораторная работа №2 Управляющие компоненты Цель работы
- •Методические указания
- •1 . Компонент Timer (страница System)
- •If (!Str.IsEmpty()) // Если строка не пуста
- •2. Компонент PageControl (страница Win32)
- •3 . Компонент DateTimePicker (страница Win32)
- •4 . Компонент TrackBar (страница Win32)
- •5 . Компонент UpDown (страница Win32)
- •Задания
- •Лабораторная работа №3 Проектирование меню Цель работы
- •Методические указания
- •1 . Многострочные окна редактирования Memo (страница Standart) и RichEdit (страница Win32)
- •2. Создание меню с помощью мастера
- •3. Компоненты MainMenu и РоpupMenu (панель Standart)
- •4. Проектирование меню с помощью Конструктора Меню
- •5. Организация отклика на вызов пункта меню
- •6. Диалоги как модальные формы
- •7. Создание диалогового окна с помощью шаблона
- •8. Вызов диалогового окна пунктом меню
- •9. Прием введенных значений из диалогового окна в основное окно приложения
- •Задания
- •Лабораторная работа №4 Компоненты отображения данных. Вызов стандартных диалогов Цель работы
- •Методические указания
- •1. Компонент ImageList (страница Win32)
- •2. Компонент TreeView (страница Win32)
- •Int NomZach; // номер зачетной книжки
- •Int Shit; //номер читательского билета
- •3. Компонент ListView (страница Win32)
- •4. Компонент OpenDialog (страница Dialogs)
- •5. Компонент FontDialog (страница Dialogs)
- •6. Компонент ColorDialog (страница Dialogs)
- •Задания
- •Лабораторная работа №5 Подготовка справочной системы Цель работы
- •Методические указания
- •1. Создание текстового файла разделов (*.Rtf)
- •Сноска #
- •Сноска к (заглавная латинская буква)
- •2. Создание файла содержания (*.Cnt)
- •3. Создание файла проекта
- •4. Подключение справочной системы к приложению
- •Задание
- •Библиографический список
7. Компонент ComboBox (страница Standard)
Компонент предназначен для выбора из выпадающего списка с возможностью редактирования. При изменении текста в окне (в результате выбора из списка или редактирования) вырабатывается событие OnChange. Основные свойства:
Text - текст, находящийся в окне редактирования
Items строковый массив элементов для выбора. Его заполнение происходит при нажатии на кнопку с многоточием, расположенную рядом со свойством Items. Появляется окно, каждая строка которого будет строкой в выпадающем списке.
ItemIndex – номер выбранного элемента
Sorted задает сортировку элементов списка по алфавиту
Style определяет вид комбинированного списка:
сsSimple – редактируемая строка и статический список фиксированной длины;
сsDropDown - редактируемая строка и раскрывающийся список;
сsDropDownList - раскрывающийся список (запрещается редактирование)
Таким образом, Text можно использовать, если необходимо узнать, что выбрал или ввел пользователь. Свойство Itemlndex, значения которого начинаются с 0, доступно только во время выполнения программы. Если ни одна строка не выбрана, то Itemlndex = -1 (по умолчанию). Для установки начального значения можно ввести в обработчике события OnCreate формы оператор вида
{ ComboBox1->ItemIndex = 0; }
Пример. Пусть пользователю требуется изменять шрифт надписи на компоненте Label1, выбирая размер шрифта из выпадающего списка. Для этого добавим на форму компонент ComboBox1 и в свойстве Items зададим следующие значения:
10
12
14
Тогда при изменении значения списка необходимо обрабатывать событие OnChange следующим образом:
void __fastcall TForm1::ComboBox1Change(TObject *Sender)
{ Label1->Font->Size = StrToInt(ComboBox1->Text); }
Пример выполнения задания
Вычислить площадь треугольника двумя способами: по трем сторонам и по двум сторонам и углу по формулам
S = и S = a*b* sin(a^b), где p – полупериметр; a, b, c – стороны
Пошаговая инструкция для выполнения задания.
Измените свойство Caption окна Form1 на «Вычисление площади треугольника».
Добавьте на форму 4 окна редактирования: Edit1, Edit2, Edit3, Edit4 и поменяете имена компонентов соответственно на InpA, InpB, InpC, Result. Для этого необходимо изменить соответствующие свойства Name в Инспекторе Объектов.
Чтобы выровнять компоненты, нужно их выделить, затем выбрать пункт меню View/Alignment Palette и выбрать нужную кнопку.
Сотрите текст из окон редактирования (либо в самом компоненте, либо в свойстве Text).
Рядом с окнами редактирования поместите поясняющие надписи - компоненты Label1, Label2, Label3, Label4 и измените надписи у меток соответственно на «Введите сторону А», «Введите сторону B», «Введите сторону С» и «Площадь треугольника». Чтобы изменить надпись у Label1, необходимо выбрать компонент и в свойстве Caption ввести соответствующую строку.
Добавьте компонент GroupBox1 и измените заголовок группы на «Способ вычисления».
Для реализации выбора одного из двух вариантов вычисления площади поместите на контейнер радиокнопки RadioButton1 и RadioButton2 и поменяйте надписи на «По трем сторонам» и «По двум сторонам и углу».
В обработчике события OnCreate формы необходимо задать по выбранный по умолчанию способ вычисления (например, по трем сторонам), т.е. написать
{ RadioButton1->Checked = true; }
При нажатии на RadioButton2 (событие OnClick) пользователь должен вводить угол между сторонами a и b. Для этого измените в обработчике события RadioButton2Click надпись на метке Label3 «Величина угла в градусах», а в обработчике RadioButton1Click – на «Введите сторону С»
Добавьте на форму кнопку Button1, измените надпись (Caption) на кнопке на «Вычислить».
Определим действие, которое будет выполняться при нажатии на кнопку Button1. При этом совершается событие OnClick. Нам необходимо записать операторы для вычисления суммы в обработчике этого события. Перейдите к нему можно одним из двух способов, описанных выше. В пустой обработчик добавьте
#include <math.h>
void __fastcall TForm1::Button1Click(TObject *Sender)
{ float s,p; //площадь треугольника