Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
учебник_Часть_2.doc
Скачиваний:
2
Добавлен:
01.04.2025
Размер:
1.12 Mб
Скачать

7.4. Простейшие компоненты

7.4.1. Группы радиокнопок - компоненты RadioGroup, RadioButton, GroupBox

Радиокнопки образуют группы взаимосвязанных индикаторов, из которых обычно может быть выбран только один из нескольких взаимоисключающих альтернатив.

Компонент RadioGroup - панель группы радиокнопок. Надписи и количество кнопок определяются свойством Items, имеющим тип Тstrings. В редакторе списка строк количество написанных строк определит количество переключателей.

Определить, какой из переключателей выбрал пользователь, можно по свойству ItemsIndex. Индексы, как всегда, начинаются с 0. По умолчанию ItemsIndex = -1, что означает отсутствие выбранной кнопки. Данный пример позволяет менять цвет формы по нажатию на определенный переключатель:

procedure TForm1.RadioGroup1Click(Sender: TObject);

begin

if Radiogroup1.ItemIndex<>-1

then case Radiogroup1.ItemIndex of

0: Form1.Color:=clred;

1: Form1.Color:=clyellow;

2: Form1.Color:=clgreen;

end;

end;

Компонент RadioButton позволяет располагать кнопки по своему усмотрению на панели GroupBox. Отдельная кнопка RadioButton смысла не имеет. Радиокнопки имеют смысл, когда они взаимодействуют друг с другом в группе. Эта группа объединяется единым контейнером, обычно панелью GroupBox, а также панелью любого типа и непосредственно формой. Они все ваботают как единая группа, т. е. только одной из них можно установить значение Checked в true.

7.4.2. Компоненты выбора из списков - ListBox, ComboBox

К омпоненты ListBox и ComboBox отображают списки строк. Они отличаются друг от друга прежде всего тем, что ListBox только отображает данные и позволяет пользователю выбрать из них то, что ему надо, а ComboBox позволяет также редактировать данные. ListBox отображает список в раскрытом виде и автоматически добавляет в список полосы прокрутки, если все строки не помещаются в окне компонента. ComboBox позволяет отображать список как в развернутом виде, так и ввиде выпадающего списка, что обычно удобнее, так как экономит площадь окна приложения. В компоненте ListBox имеется свойство MultiSelect, разрешающее пользователю множественный выбор в списке, если его значение равно True. Индекс выбранной строки можно узнать из свойства ItemIndex, доступного только во время исполнения. Если ни одна строка не выбрана, то ItemIndex = -1, Если используется множественный выбор, то ItemIndex соответствует тому элементу списка, который находится в фокусе (рис. 7.6).

Рис. 7.6. Внешний вид ComboBox

Разработка проекта Goroscop

Постановка задачи

Разработать программу, с помощью которой пользователь мог бы выполнить следующее. Он запускает программу, выбирает знак зодиака с помощью мышки или стрелок и нажимает клавишу Enter.

На экране появляется список благоприятных и неблагоприятных дней этого знака. Программа заканчивает свою работу по нажатию клавиши Close (рис.7.7).

Рис. 7.7. Внешний вид проекта Goroscop

Пояснения. Новым в этой программе является компонента ListBox (список).

Рекомендуемый план разработки программы

1. Открыть новый проект.

2 . Разместить на форме компоненты в соответствии с рис 7.8. Свойству Kind кнопки BitBtn1 придать значение Close.

Рис. 7.8. . Исходный вид проекта Goroscop

3. Сохранить проект под именем gor.pas и goros.dpr.

4. Запустить программу, затем закрыть окно проекта кнопкой Close.

5. Выделить Label1, найти в Object Inspector свойство Caption и справа от него вместо слова Label1 написать «Гороскоп с 22 ноября по 23 декабря».

6. Выделить Label2, свойству Caption придать значение «Благоприятные Неблагоприятные», т. е. справа от свойства Caption вместо слова Label2 набрать указанные слова.

7. Выделить Label3 и справа от свойства Caption убрать слово Label3.

8. Выделить ListBox1, в Object Inspector найти свойство Items, справа от него нажать на кнопку с тремя точками. В появившемся окне встроенного редактора (см. рис. 7.7) ввести названия знаков зодиака, каждый на новой строке.

Нажать клавишу OK.

9. В Object Inspector найти событие OnKeyPress, справа от него в поле сделать двойной щелчок левой кнопкой мыши. В том месте Unit1, где будет мигать курсор, ввести следующий код:

if key=#13 then

case Listbox1.ItemIndex of

0: Label3.Caption:='20 24-13 ';

1: Label3.Caption:='26-4 14,15,22 ';

2: Label3.Caption:='12-19 ';

3: Label3.Caption:='24,30,2,6,12,16 26,5,18 ';

4: Label3.Caption:='14,15,16,19-22 27,2,3 ';

5: Label3.Caption:='31,6,7,10 24-26 ';

6: Label3.Caption:='29-31,6,12,20 26 ';

7: Label3.Caption:='24,29,31,2,6,12,20 26,28,5,18 ';

8: Label3.Caption:='24-30 5,12 ';

9: Label3.Caption:='23-22 ';

10: Label3.Caption:='23-22 ';

11: Label3.Caption:='20 1,2 ';

end;

10. Сохранить проект, запустить и протестировать его.

Упражнения. Совершенствование проекта

1. Изменить интерфейс программы: шрифты, цвет экрана и букв.

Подсказка. Возможно придется в коде подкорректировать количество пробелов.

2. Сделать так, чтобы, когда курсор мыши находится в поле ListBox1, появлялась бы подсказка о том, что надо сделать.

Подсказка. Воспользуйтесь свойствами Hint Showhint компонента ListBox1.

3. Сделать так, чтобы при нажатии клавиши Close появлялось бы окно сообщения «Вы уверены?»

Подсказка. Применить функцию MessageDlg.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]