- •Основы визуального программирования в среде Delphi 7.0
- •2. МеткаLabel(страницаStandard)
- •3. Окно редактирования Edit (страница Standard)
- •4. Кнопки Button, BitBtn (страницы Standard, Additional)
- •5. Компонент CheckBox(страница Standard)
- •6. Компоненты GroupBox, RadioButton (страница Standard)
- •7. Компонент ComboBox(страница Standard)
- •Пример выполнения задания
- •Практические задания
- •Занятие №2
- •2. Компонент PageControl (страница Win32)
- •3. КомпонентDateTimePicker(страницаWin32)
- •4. КомпонентTrackBar(страницаWin32)
- •5. Компонент UpDown (страница Win32)
- •Практические задания
- •Занятие №3
- •2. Создание меню с помощью мастера
- •3. Компоненты MainMenuи РоpupMenu(панельStandart)
- •4. Проектирование меню с помощью Конструктора Меню
- •5. Организация отклика на вызов пункта меню
- •6. Диалоги как модальные формы
- •7. Создание диалогового окна с помощью шаблона
- •8. Вызов диалогового окна пунктом меню
- •9. Прием введенных значений из диалогового окна в основное окно приложения
- •Практические задания
- •Занятие №4
- •2. Компонент TreeView(страницаWin32)
- •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 следующим образом:
procedure TForm1.ComboBox1Change(Sender : TObject)
begin
Label1.Font.Size: = StrToInt(ComboBox1.Text);
end;
Пример выполнения задания
Вычислить площадь треугольника двумя способами: по трем сторонам и по двум сторонам и углу по формулам
S = иS = a*b* sin(a^b), где p – полупериметр; a, b, c – стороны
Пошаговая инструкция для выполнения задания.
Измените свойство Caption окна Form1 на «Вычисление площади треугольника», а Name на MyFirstForm.
Добавьте на форму 4 окна редактирования: Edit1, Edit2, Edit3, Edit4 и поменяете имена компонентов соответственно на InpA, InpB, InpC, Result. Для этого необходимо изменить соответствующие свойства Name в Инспекторе Объектов.
Чтобы выровнять компоненты, нужно их выделить, затем выбрать пункт меню View/Alignment Palette и выбрать нужную кнопку.
Сотрите текст из окон редактирования (либо в самом компоненте, либо в свойстве Text).
Рядом с окнами редактирования поместите поясняющие надписи - компоненты Label1, Label2, Label3, Label4 и измените надписи у меток соответственно на «Введите сторону А», «Введите сторону B», «Введите сторону С» и «Площадь треугольника». Чтобы изменить надпись у Label1, необходимо выбрать компонент и в свойстве Caption ввести соответствующую строку.
Добавьте компонент GroupBox1 и измените заголовок группы на «Способ вычисления».
Для реализации выбора одного из двух вариантов вычисления площади поместите на контейнер радиокнопки RadioButton1 и RadioButton2, измените имена на GeronRadioButton и SinusRadioButton и поменяйте надписи на «По трем сторонам» и «По двум сторонам и углу».
В обработчике события OnCreate формы необходимо задать по выбранный по умолчанию способ вычисления (например, по трем сторонам), т.е. написать
GeronRadioButton.Checked := true;
При нажатии на SinusRadioButton (событие OnClick) пользователь должен вводить угол между сторонами a и b. Для этого измените в обработчике события SinusRadioButtonClick надпись на метке Label3 «Величина угла в градусах», а в обработчике GeronRadioButtonClick – на «Введите сторону С»
Добавьте на форму кнопку Button1, измените надпись (Caption) на кнопке на «Вычислить», а название на StartCountButton.
Определим действие, которое будет выполняться при нажатии на кнопку StartCount. При этом совершается событие OnClick. Нам необходимо записать операторы для вычисления суммы в обработчике этого события. Перейдите к нему можно одним из двух способов, описанных выше. В пустой обработчик добавьте
Uses Math
procedure TMyForm.StartCountButtonClick(Sender : TObject);
var
s,p : real; //площадь треугольника
a, b, c : integer; //стороны
begin
if ((InpA.Text <> ‘’) and (InpB.Text <> ‘’) and (InpC.Text <> ‘’))
then
begin
a := StrToInt(InpA.Text); b := StrToInt(InpB.Text);
if (GeronRadioButton.Checked = true)
then
c := StrToInt(InpC.Text);
p :=(a+b+c)/2; //полупериметр
s := sqrt(p*(p-a)*(p-b)*(p-c));
Result.Text := FloatToStr(s);
end;
else
begin
p := StrToInt(InpC.Text);
s := a*b*sin(p*3.141592654/180);
Result.Text := FloatToStr(s);
end;
end;
end.
Добавьте на форму компонент ComboBox1. Измените имя на ColorComboBox. В нем мы будем изменять цвет фона у компонентов InpA, InpB, InpC при выборе соответствующего цвета из списка., например на желтый или серый. Для этого в свойстве Items необходимо набрать названия цветов, а в обработчике события OnChange компонента написать
case (ColorComboBox.ItemIndex) of
0: begin
InpA.Color:=clYellow;
InpB.Color:=clYellow;
InpC.Color:=clYellow;
end;
1: begin
InpA.Color:=clSilver;
InpB.Color:= clSilver;
InpC.Color:= clSilver;
end;
end;
Затем поместите на форму компонент CheckBox1, который будет следить за отображением ColorComboBox, т.е. есть галочка - выпадающий список появляется, нет – исчезает. Назовите его ColorSwitchShowCheckBox Таким образом, необходимо обрабатывать событие OnClick компонента ColorSwitchShowCheckBox
… if (ColorSwitchShowCheckBox.Checked = true)
then ColorComboBox .Visible := true;
else ColorComboBox .Visible := false; …
Откомпилируйте и запустите приложение (F9).