Разработка программ с применением оператора цикла for .



Лабораторная работа № 1 1 . Тема 1: Оператор выбора Case. Группы радиокнопок - компоненты RadioGroup , RadioButton и GroupBox . Цель: Познакомиться с оператором выбора Case. Также рассмотреть работу компонентов RadioGroup, RadioButton и GroupBox.

Оператор выбора Case.

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

Общую структуру оператора выбора в полной форме можно представить следующим образом:

Case <переключатель> of

<список констант 1>:<оператор 1>;

<список констант 2>:<оператор 2>;

................

<список констант N>:<оператор N>;

Else <оператор E>

End;

Значение переключателя определяет, какой из операторов должен быть выполнен. Если переключатель принимает одно из значений списка констант 1, то выполняется оператор 1, а остальные операторы пропускаются. Аналогично будут выполняться операторы от оператора 2 до оператора N. Оператор E будет выполняться в том случае, если значение переключателя не совпало ни с одним из значений Списков констант от 1 до N.

В неполной форме оператора case альтернативная всем предыдущим вариантам выбора ветвь Else отсутствует.

Пример:

Case I of

1:ShowMessage(‘I=1’);

2,3,5:ShowMessage(‘I=2 или I=3 или I=5’)

End;

 

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

 

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

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

Начнем рассмотрение радиокнопок с компонента RadioGroup — панели груп­пы радиокнопок. Это панель, которая может содержать регулярно расположенные столбцами и строками радиокнопки. Надпись в левом верхнем углу панели (см. рис.) определяется свойством Caption . А надписи кнопок и их количество определяются свойством Items , имеющим тип TStrtugs . Этот тип представляет собой набор строк (подробнее мы изучим несколько позже). Щелкнув на кнопке с многоточием около этого свойства в окне Инспектора Объектов, вы попадете в редактор списков строк. В нем вы можете занести надписи, которые хотите видеть около кнопок, по одной в строке. Сколько строчек вы запишете — столько и будет кнопок. На­пример, для компонента RadioGroup рисунка свойство Items в редакторе Delphi имеет вид:

 

Кнопки, появившиеся в панели после задания значений Items, можно размес­тить в несколько столбцов (не более 17), задав свойство Columns. По умолчанию Columns=1, т.е. кнопки размещаются друг под другом.

Определить, какую из кнопок выбрал пользователь, можно по свойству ItemIndex, которое показывает индекс выбранной кнопки. Индексы, как всегда в Delphi, начинаются с 0. По умолчанию ItemIndex = -1, что означает отсутствие выбранной кнопки. Если вы хотите, чтобы в момент начала выполнения приложе­ния какая-то из кнопок была выбрана (это практически всегда необходимо), то надо установить соответствующее значение ItemIndex во время проектирования. Если вы используете радиокнопки не для ввода, а для отображения данных, уста­навливать значение ItemIndex можно программно во время выполнения приложения.

Пример: Найти значение функции  в точках x=1, x=1.5, x=3 и x=5. В какой именно точке производится вычисление определяющееся радиокнопками.

Решение: Разместим на форме следующие компоненты: TButton, TLabel, TRadioGroup. В свойство Items объекта TRadioGroup внесем следующие строки:

 

 

 Обработчик события onClick объекта TButton запишем следующим образом:

 

 


 

Компонент RadioGroup очень удобен, но не свободен от некоторых недостат­ков. Его хорошо использовать, если надписи кнопок имеют примерно одинаковую длину и если число кнопок в каждом столбце (при размещении их в нескольких столбцах) одинаково. Посмотрите, например, следующий рисунок.

Группа радиокнопок выглядит плохо: она занимает слишком много места, которое пропадает впустую. Связано это с тем, что длина надписи у первой кнопки превышает длину надписей у остальных кно­пок. A RadioGroup при размещении кнопок, ориентируется на надпись максималь­ной длины.

В подобных случаях желательно нерегулярное расположение кнопок. Такую возможность дают компоненты RadioButton , сгруппированные панелью GroupBox . Панель GroupBox выглядит на форме так же, как RadioGroup, и надпись в ее верхнем левом углу также определяется свойством Caption.

Эта па­нель сама по себе пустая. Ее назначение — служить контейнером для других управляющих элементов, в частности, для радиокнопок RadioButton . Отдельная радиокнопка RadioButton особого смысла не имеет, хотя и может служить инди­катором, включаемым и выключаемым пользователем. Но в качестве индикаторов обычно используются другие компоненты — CheckBox . А радиокнопки имеют смысл, когда они взаимодействуют друг с другом в группе. Эта группа и объединя­ется единым контейнером, обычно панелью GroupBox.

Рассмотрим свойства радиокнопки RadioButton . Свойство Caption содержит надпись, появляющуюся около кнопки. Значение свойства Alignment определяет, с какой стороны от кнопки появится надпись: taLeftJustify — слева, taRichtJustify — справа (это значение принято по умолчанию). Свойство Checked определяет, выбрана ли данная кнопка пользователем, или нет. Поскольку в начале выполнения приложения обычно надо, чтобы одна из кнопок группы была выбрана по умолчанию, ее свойство Checked надо установить в true в процессе проектирова­ния. Если вы поэкспериментируете, то заметите, что и во время проектирования можно установить в true значение Checked только у одной кнопки из группы.

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

 

Размещение кнопок RadioButton в панели GroupBox , как можно видеть из рис, дает большую свободу по сравнению с компонентом RadioGroup и позволяет разместить кнопки не регулярно.

Радиокнопки RadioButton могут размещаться не только в панели GroupBox , но и в любой панели другого типа, а также непосредственно на форме. Группа взаимосвязанных кнопок в этих случаях определяется тем оконным компонентом, который содержит кнопки. В частности, для радиокнопок, размещенных непо­средственно на форме, контейнером является сама форма. Таким образом, все кнопки, размещенных непосредственно на форме, работают как единая группа, т.е. только в одной из этих кнопок можно установить значение Checked в true .

Пример: Решим предыдущую задачу с использованием объектов GroupBox и RadioButton.

Решение: Разместим на форме следующие компоненты: TButton, TLabel, TGroupBox а также в панель GroupBox добавим четыре радиокнопки RadioButton (с именами RadioButton1, RadioButton2, RadioButton3, RadioButton4). Изменим текст надписи радиокнопок

  Обработчик события onClick объекта TButton запишем следующим образом:


Тема 2: Разработка программ с использованием оператора цикла For . Список строк TStrings . Объект TMemo .

Цель: Познакомиться с написанием программ циклической структуры, с использованием оператора FOR, а также задействовав класс TStrings и многострочное окно редактирования TMemo.

Разработка программ с применением оператора цикла for .

Оператор for обеспечивает циклическое повторение некоторого оператора (в частности, составного оператора) заданное число раз. Повторяемый оператор назы­вается телом цикла. Повторение цикла определяется некоторой управляющей пе­ременной (счетчиком), которая увеличивается или уменьшается на единицу при каждом выполнении тела цикла. Повторение завершается, когда управляющая пе­ременная достигает заданного значения.

Оператор for записывается в одной из следующих форм:

for <счетчик>:=<начальное значение> to <конечное значение> do <оператор>;

или

for <счетчик>:=<начальное значение> downto <конечное значение> do <оператор>;

где <счетчик> — локальная управляющая переменная порядкового типа. В начале выполнения оператора for ей присваивается <начальное значение>. После каждого очередного выполнения тела цикла <оператор> ее значение увеличивается (в первой форме с to ) или уменьшается (во второй форме с downto ) на единицу. Когда значение управляющей переменной достигает значения <конеч­ное значение>, тело цикла выполняется последний раз, после чего управление пе­редается оператору, следующему за структурой for . <начальное значение> и <ко­нечное значение> являются выражениями, совместимыми по типу с управляющей переменной.

Если заданные начальное и конечное значения равны друг другу, то тело цикла выполняется только один раз. Если в форме с to начальное значение больше конеч­ного или в форме с downto начальное значение меньше конечного, то тело цикла не выполняется ни разу.

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

Приведем примеры использования оператора for .

TStrings – это абстрактный класс объектов, представляющих собой списки строк и исполь­зуемых во многих компонентах Delphi в качестве различных свойств.

Класс TStrings содержит методы и свойства, позволяющие манипулировать со списками строк:

• Добавлять и удалять строки в указанных позициях;

• Перестраивать и упорядочивать последовательность строк;

• Получать доступ к конкретным строкам;

• Читать и записывать списки строк в файлы и потоки;

• Связывать с каждой строкой некоторый объект.

 

Свойства.

Ниже приведен список основных свойств, определенных в TStrings.

Свойство Тип Описание
Count Integer Число строк в списке. Свойство только для чтения. ;
Strings [Index: In­teger] String Текст строки с указанным индексом. Индекс первой строки — 0.
Text   String Представляет весь список как одну строку, внутри ко­торой используются разделители типа символов воз­врата каретки (#13) и перевода строки (#10).  

 

Методы.

Ниже приведены основные методы, объявленные в классе TStrings .


Дата добавления: 2018-11-24; просмотров: 299; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!