Мегаобучалка Главная | О нас | Обратная связь


Лабораторная работа 4. Компоненты-переключатели



2020-02-04 279 Обсуждений (0)
Лабораторная работа 4. Компоненты-переключатели 0.00 из 5.00 0 оценок




Цель: изучить компоненты выбора переключения с зависимой и независимой фиксацией.

Для организации ветвления в языке программирования Pascal используются два оператора: оператор ветвления Ifthen и оператор выбора Case. Выбор конкретной ветви алгоритма может осуществляться несколькими различными способами.

Можно программно анализировать полученные ранее данные, однако в реальном программировании часто встречается ситуация, когда дальнейшие действия должны зависеть от выбора пользователя. Именно для таких ситуаций существует множество компонентов, которые позволяют визуально выбирать некоторый способ продолжения выполнения программы. Эти компоненты будем условно называть переключателями. Существуют два принципиально различных вида переключателей, это, во-первых, те, которые могут принимать единственное значение из предлагаемого набора (иногда они называются переключателями с зависимой фиксацией) и, во-вторых, переключатели, которые в любой момент времени могут быть либо включены, либо выключены (по аналогии они называются переключателями с независимой фиксацией или включателями).

Рассмотрим первый тип переключателей.

Изображаются они в виде небольшого кружка. У выделенного переключателя внутри этого кружка помещается черная точка.

К переключателям относятся компоненты: RadioButton — выбор из одной альтернативы, RadioGroup — выбор из набора альтернатив, ComboBox — выбор из комбинированного списка, который переключателем как таковым не является, но может выполнять подобные функции. Все эти компоненты находятся на странице Standat.

Первый компонент RadioButton позволяет выбирать из одной альтернативы, поэтому на этапе выполнения существует ключевое свойство Checked, которое принимает значение True, если данная альтернатива выбрана, и False — в противном случае. С помощью этого свойства на этапе выполнения можно проверять состояние переключателя. Однако выбор из одной альтернативы не является выбором как таковым, поэтому либо группируют несколько подобных компонентов, либо используют другие компоненты.

Рассмотрим компонент RadioGroup. На этапе подготовки, пользуясь инспектором объектов, можно редактировать альтернативы с помощью свойства Items класса TString. При выборе данного свойства появляется редактор, где можно перечислять все возможные варианты действий. Данный редактор « String list edit » аналогичен тому, который появляется при выборе свойства Lines компонента Memo. Используя свойство Columns, можно задать число столбцов, где будут помещены выбираемые альтернативы.

На этапе выполнения с помощью свойства ItemIndex можно определить номер выбранной альтернативы, при этом нумерация начинается с 0. Если ни одна альтернатива не выбрана, то данное свойство принимает значение равное –1. Выбор начальной альтернативы можно установить
с помощью того же свойства. Свойства Items класса TString содержит указатель на список строк и все присущие этому классу свойства и методы.

Событие OnClick возникает в тот момент, когда выбирается другой вариант.

Приведем пример, использующий компонент RadioGroup.

Пример 1

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

Задача уже была решена раньше, однако не учитывалась возможность ввода данных различного типа. Для решения этой задачи, кроме ранее используемых компонентов, поместим на форму компонент RadioGroup
и с помощью инспектора объектов выберем свойство Items. Затем в редакторе строк в первой строке запишем метры, во второй — сантиметры, в третьей — дюймы.

После выполнения данных операций форма будет иметь вид, представленный на рисунке 16.

Рисунок 16

 

Как и раньше, будем анализировать нажатие на кнопку «Вычислить», но в расчетах учтем выбор соответствующей единицы измерения. Тогда процедура может иметь вид:

procedure TForm1.Button1Click(Sender: TObject);

 Const g=9.81;

 Var h,t : Real;

Begin

 h:=StrToFloat(edit1.Text);

 Case radioGroup1.ItemIndex of

 0: t:=sqrt(2*h/g); {Высота задается в метрах}

 1: t:=sqrt(2*h/100/g); {Высота задается в сантиметрах}

 2: t:=sqrt(2*h*2.54/100/g); {Высота задается в дюймах}

 End;

 edit2.Text:=FloatToStr(t);

end;

Недостаток компонента RadioGroup заключается в том, что имеется возможность определить только номер выбранной альтернативы, а не ее текстовое содержание. Для того чтобы определить и текстовое содержание альтернативы, можно использовать комбинированную строку, компонент ComboBox. Комбинированная строка ввода объединяет в себе свойство строки и списка. В обычном состоянии она имеет вид строки Edit со стоящей рядом кнопкой с изображением направленной вниз стрелки. Если нажать эту кнопку, то появится список строк, где можно выбрать произвольную. Данный компонент имеет свойство Items, поэтому задание альтернатив, которые в данном случае будут раскрывающимся списком, происходит аналогичным образом. Однако на этапе выполнения допустимо свойство Text, в котором находится выбранная из списка строка. При работе с данным компонентом необходимо различать свойства ComboBox . Items . Text и ComboBox . Text. Если первое — это свойство, где находятся все строки списка, включая разделители (это свойство имеет подобный смысл и для RadioGroup), то второе содержит выбранную из списка строку.

Если в предыдущем примере использовать компоненты ComboBox
с теми же значениями свойства Items, то окно приложения после запуска будет иметь вид, представленный на рисунке 17.

Рисунок 17

 

Процедура обработки будет:

procedure TForm1.Button1Click(Sender: TObject);

 Const g=9.81;

 Var h,t : Real;

Begin

 h:=StrToFloat(edit1.Text);

 if ComboBox1.Text='метры' then t:=sqrt(2*h/g);

 {Высота задается в метрах}

 if ComboBox1.Text='сантиметры' then t:=sqrt(2*h/100/g);

 {Высота задается в сантиметрах}

 if ComboBox1.Text='дюймы' then t:=sqrt(2*h*2.54/100/g);

 {Высота задается в дюймах}

 edit2.Text:=FloatToStr(t);

end;

Выбор между компонентами RadioGroup и ComboBox во многом зависит от вкусов программистов, поскольку они выполняют одинаковую роль, а имеют различные внешний вид и применение. Необходимо отметить, что в языке Delphi есть большое количество компонентов, имеющих одинаковую область применения, однако отличающихся некоторыми частными внешними особенностями и доступными для применения методами.

Рассмотрим пример.



2020-02-04 279 Обсуждений (0)
Лабораторная работа 4. Компоненты-переключатели 0.00 из 5.00 0 оценок









Обсуждение в статье: Лабораторная работа 4. Компоненты-переключатели

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Генезис конфликтологии как науки в древней Греции: Для уяснения предыстории конфликтологии существенное значение имеет обращение к античной...
Как вы ведете себя при стрессе?: Вы можете самостоятельно управлять стрессом! Каждый из нас имеет право и возможность уменьшить его воздействие на нас...
Личность ребенка как объект и субъект в образовательной технологии: В настоящее время в России идет становление новой системы образования, ориентированного на вхождение...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (279)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.008 сек.)