Народна Освіта » Інформатика » Флажки. Поле с раскрывающимся списком. Переключатели

НАРОДНА ОСВІТА

Флажки. Поле с раскрывающимся списком. Переключатели

1.    Какой вид команды полного и неполного ветвления в языке Object Pascal и как они исполняются

2.    Какие свойства метки и поля вы знаете? Как можно изменить их значения?

3.    Для чего в программах, с которыми вы работали, использовались флажки, поле с раскрывающимся списком, переключатели?

ФЛАЖКИ И ИХ ИСПОЛЬЗОВАНИЕ

Рассмотрим компонент флажок. Значение некоторых его свойств, в частности свойства Checked (англ. checked - проверено), могут быть использованы в логическом выражении в команде ветвления.

Для расположения флажка на форме нужно дважды щелкнуть на кнопке 0 TCheckBox (англ, checkbox - коробка для проверки) на вкладке Standard с компонентами. После этого флажок появится в верхней левой части формы (рис. 6.24), а его имя добавится в список компонентов проекта в поле Компоненты окна Инспектор объектов.

При необходимости поле можно перетащить в любое место формы.

Свойства флажка Caption, Top, Left, Name,

Color, Enabled, Visible, Font, Width, Height аналогичные соответствующим свойствам метки. В частности, значения свойств Width и Height флажка определяются длиной текста справа от флажка и размером шрифта, которым выведен этот текст.

Сам этот текст является значением свойства Caption флажка. Этот текст, как и для метки, можно вводить непосредственно на вкладке Свойства в поле Caption, а можно вводить в окне Диалог ввода строк, которое открывается выбором кнопки справа от поля Caption.

Свойство Checked флажка может принимать одно из двух значений: true (отметка флажка установлена, флажок установлен) или false (отметка флажка не установлена, флажок снят).

Если на форме расположено несколько флажков, то среди них можно установить один или несколько, не устанавливать ни одного или установить все. Если флажок установлен, то в нем появляется отметка 17.

Установлением отметок флажков можно задать значение одного или нескольких свойств объекта из некоторого определенного набора свойств.

Рассмотрим, как можно использовать флажки для реализации ветв -ления.

Пусть, например, нам необходимо в ходе исполнения проекта изменять значения либо одного из свойств окна (заголовок, цвет или размеры), либо нескольких из них, либо не изменять значение ни одного из них.

Для этого разместим на форме кнопку и три флажка (рис. 6.25). При размещении флажков на форме для каждого из них по умолчанию значение свойства Checked устанавливается false. Поскольку при исполнении проекта ни один флажок может быть не установлен, то целесообразно оставить такие начальные значения свойства Checked для всех флажков.

 

Создадим процедуру для обработки события Click для кнопки и в нее поместим следующие три последовательные (не вложенные друг в друга) команды ветвления:

If CheckBoxl.Checked

Then Forml.Caption := ’Заглавие изменено’;

If CheckBox2.Checked Then Forml.Color := clRed;

If CheckBox3.Checked Then begin

Forml.Width := 500;

Forml.Height := 200; end;

В каждой из этих команд, независимо друг от друга, будет определяться, установлен флажок или нет. И в зависимости от этого, в каждой из них будут или не будут изменяться значения соответствующих свойств окна.

ПОЛЕ С РАСКРЫВАЮЩИМСЯ СПИСКОМ И ЕГО ИСПОЛЬЗОВАНИЕ

 

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

Для размещения на форме поля с раскрывающимся списком следует дважды щелкнуть на кнопке Щ TComboBox (англ. сотЪоЪох - поле со списком) на вкладке Standard с компонентами. После этого поле с раскрывающимся списком появится в верхней левой части формы (рис. 6.26), а его имя добавится в список компонентов проекта в поле Компоненты окна Инспектор объектов. При необходимости поле с раскрывающимся списком можно перетащить в любое место формы.

Свойства Top, Left, Height, Width, Name, Color, Enabled, Visible, Font, Text поля с раскрывающимся списком полностью аналогичны соответствующим свойствам поля.

Задать содержание раскрывающегося списка можно в окне Диалог ввода строк (рис. 6.27), которое открывается выбором кнопки справа от поля Items (англ. items - предметы) вкладки Свойства.

В ходе исполнения проекта можно открыть этот список и выбрать любую его строку. При этом соответствующий текст попадает в поле и становится значением свойства Text поля с раскрывающимся списком.

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

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

 

Разместим на форме поле с раскрывающимся списком и создадим соответствующий список (рис. 6.27). Разместим также на форме кнопку и составим процедуру - обработчик события Click для этой кнопки, при исполнении которой будем выбирать одну из строк раскрывающегося списка (рис. 6.28). В зависимости от выбранной строки будет изменяться или заголовок формы, или ее цвет, или ее размеры.

Выберем первый пункт списка Заголовок и нажмем кнопку. Тогда при исполнении процедуры значение логического выражения (ComboBoxl.Text = ’Заголовок’) = true, а значит будет исполняться команда Forml.Caption := ’Заголовок изменен’, которая изменит заголовок окна, после чего исполнение команды ветвления и всей процедуры закончится.

Если выбрать второй пункт списка Цвет и нажать кнопку, то при исполнении процедуры значение логического выражения (ComboBoxl.Text = ’Заголовок’) = false. Тогда вычисляется значение логического выражения ComboBoxl.Text = ’Цвет’, и оно равно true. А значит будет исполняться команда Form1.Color:= clRed, которая изменит цвет окна, после чего исполнение команды ветвления и всей процедуры закончится.

 

Если выбрать третий пункт списка Размеры и нажать кнопку, то при исполнении процедуры значение логического выражения (ComboBoxl.Text =

'Заголовок') = false. После этого вычисляется значение логического выражения ComboBoxl.Text = ’Цвет’, и оно тоже равно false. После этого вычисляется значение логического выражения ComboBoxl.Text = ’Размеры’, и оно равно true. А значит будут исполняться команды Forml.Width := 600 и Forml.

Height := 300, которые изменят ширину и высоту окна, после чего исполнение команды ветвления и всей процедуры закончится.

Если не выбрать ни один пункт списка и нажать кнопку, то значение всех логических выражений в ветвлении будут false, и в этом случае не будут изменяться значения ни одного свойства окна, и исполнение процедуры закончится.

Для тех, кто хочет знать больше

Переключатели и их использование

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

Для размещения на форме переключателя следует дважды щелкнуть на кнопку 0 TRadioButton (англ, radiobutton - круглая кнопка) на вкладке Standard с компонентами.

Если на форме есть несколько переключателей, то среди них можно выбрать только один. Если переключатель выбран, тогда в нем появляется отметка (* .

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

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

 

Разместим на форме кнопку и три переключателя (рис. 6.29). При размещении переключателей на форме для каждого из них по умолчанию устанавливается значение свойства Checked - false. До запуска проекта изменим значение этого свойства у первого переключателя на true. После этого на форме он будет выглядеть выбранным. Таким он будет и после запуска проекта на исполнение.

Создадим процедуру - обработчик события Click для кнопки и в ее текст поместим такую команду:

If RadioButtonl.Checked Then Forml.Caption := ’Заголовок изменен’

Else If RadioButton2.Checked Then Forml.Color := cIRed Else begin

Forml.Width := 600;

Forml.Height := 300; end;

Начинаться исполнение этой команды будет с определения значения свойства RadioButtonl.Checked.

Если при наступлении события Click для кнопки будет выбран первый переключатель, то RadioButtonl.Checked = true. Поэтому исполнится команда изменения заголовка окна, а другие части этой команды ветвления исполняться не будут.

Если при наступлении события Click для кнопки будет выбран второй переключатель, то RadioButtonl.Checked = false. Поэтому будут исполняться команды после первого ключевого слова Else. Это команда ветвления, которая является частью первой команды ветвления. При ее исполнении определяется значение свойства RadioButton2.Checked. Поскольку будет выбран второй переключатель, то это значение равно true. Поэтому исполнится команда изменения цвета окна, а другие части команды исполняться не будут.

Если при наступлении события Click для кнопки будет выбран третий переключатель, то RadioButtonl.Checked = false. Поэтому будут исполняться команды после первого ключевого слова Else, то есть внутренняя команда ветвления. При ее исполнении определяется значение свойства RadioButton2.Checked. Поскольку второй переключатель не выбран, то его значение false. Тогда будут исполняться команды после второго ключевого слова Else, то есть две команды изменения размеров окна.

Если перед запуском этого проекта на исполнение ни у одного переключателя не изменять значение свойства Checked, установленное по умолчанию, то при запуске проекта ни один из них не будет выбран. Если и при исполнении проекта не выбран ни один из переключателей, при выборе кнопки изменятся размеры окна (подумайте, почему состоятся именно такие изменения). Чтобы этого не произошло, необходимо либо обязательно выбирать один из переключателей, либо после второго ключевого слова Else вставить еще одну команду ветвления:

If RadioButtonl.Checked

Then Forml.Caption := ’Заголовок изменен’

Else If RadioButton2.Checked Then Forml.Color := cIRed Else If RadioButton3.Checked Then begin

Forml.Width := 600;

Forml.Height := 300; end;

Значение свойства Checked флажков может быть использовано в логическом выражении команды ветвления. Оно равно True, если флажок установлен, или False, если флажок не установлен (снят).

Для размещения на форме флажка следует дважды щелкнуть на кнопке 0 TCheckBox на вкладке Standard с компонентами. Если на форме расположено несколько флажков, то среди них можно установить один или несколько, не установить ни одного или установить все. Поэтому флажки используют для того, чтобы в ходе исполнения проекта выбрать или один из возможных вариантов, или несколько, или выбрать все, или не выбрать ни одного.

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

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

1*. Для чего используют флажки?

2°. Какие значения может принимать свойство Checked для флажка? 3*. Для чего используют поле с раскрывающимся списком?

4*. Как нужно записывать команды ветвления, в которых используется значение свойства Checked для флажков?

5*. Как целесообразно записать команды ветвления, в которых используются значения свойств поля с раскрывающимся списком?

6*. Каковы отличия в исполнении команд ветвления с использованием значений свойств флажков и поля с раскрывающимся списком?

7*. Для чего используют переключатели?

8*. Какие значения может принимать свойство Checked для переключателя?

1*. Нарисуйте блок-схему и объясните ход исполнения последовательности команд:

If CheckBoxl.Checked Then begin

<команды 1> end;

If CheckBox2.Checked Then begin

<команды 2> end;

2*. Нарисуйте блок-схему и объясните ход исполнения команд:

If ComboBoxl.Text = ’<Текст 1>’

Then begin

<команды 1> end

Else If ComboBoxl.Text = ’<Текст 2>’

Then begin

<команды 2> end

Else If ComboBoxl.Text = ’<Текст 3>’

Then begin

<команды 3> end;

3*. Нарисуйте блок-схему и объясните ход исполнения команд:

If RadioButtonl.Checked Then begin

<команды 1> end

Else If RadioButton2.Checked Then begin

<команды 2> end

Else begin

<команды 3> end;

4*. Объясните отличия в исполнении команды ветвления из задания № 2 и последовательности двух команд ветвления из задания № 1. 5*. Создайте проект, в котором можно вычислить сумму, или разность, или произведение, или частное от деления двух произвольных действительных чисел в зависимости от выбранного пункта раскрывающегося списка. Сохраните проект в папке с именем Задание 6.5.5, созданной в вашей папке.

6*. Создайте проект, в котором можно вычислить сумму, разность, произведение, частное от деления двух произвольных действительных чисел в зависимости от установленных отметок флажков. Сохраните проект в папке с именем Задание 6.5.6, созданной в вашей папке.

7*. Рабочий изготавливает детали. Известно количество реально изготовленных деталей за месяц и стоимость одной детали. Если рабочий выполняет план, то он получает премию в размере 10 % от заработанной в результате изготовления деталей суммы. Если рабочий перевыполняет план, то его премия составляет 30 % от заработанной суммы. А если он недовыполнит план, то с него снимается 20 % от заработанной суммы. Создайте проект, определяющий сумму денег, которую заработал рабочий за месяц. Сохраните проект в папке с именем Задание 6.5.7, созданной в вашей папке.

8*. Рабочий имеет фиксированную заработную плату за работу в течение месяца. Если у рабочего есть дети, он получает доплату в размере 20 % от его месячной заработной оплаты. Если у рабочего в течение месяца были случаи нарушения трудовой дисциплины, с него взымают штраф в размере 15 % от его месячной заработной оплаты. Создайте проект, определяющий сумму денег, которую заработал рабочий за месяц. Сохраните проект в папке с именем Задание 6.5.8, созданной в вашей папке.

 

Это материал учебника Информатика 8 класс Ривкинд

 

Категорія: Інформатика

Автор: admin от 16-10-2016, 02:50, Переглядів: 2508