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

Конструирование формы

Для формы Form1в инспекторе объектовObject Inspectorможно задать следующие свойства:

  • Caption– заголовок окна (например, «Вычисление»);

  • Height– 400 (высота окна);

  • Width – 600 (ширина окна).

Поместить на форму компоненты:

  • панель Panel1(в верхней части экрана для ввода информации);

  • панель Panel2(в нижней части для вывода информации) (страницаStandard).

Для панелей с помощью свойства Captionочистить поле заголовка.

На панели Panel1разместить компонентуEdit1– для ввода переменнойх(страницаStandard).

Поле Text– очистить для ввода переменнойx.

Label1– использовать для задания метки длях(страницаStandard).

Для Label1 задать свойствоCaptionx=.

На панели Panel2разместить меткуLabel2.

Captionзадать – Результат.

Управлять вычислением будет кнопка Button1, разместить ее на панелиPanel1и задатьCaption– Вычислить. ДляButton1необходимо создать обработчик событияOnClick(нажатие кнопки).

Форма будет иметь вид (рис. 2):

Рисунок 2 – Форма с размещенными объектами

Для создания обработчика надо перейти на вкладку EventsИнспектора объектовObject Inspector, выбрать мышкой нужную компоненту (Button1) и найти требуемое событиеOnClick.

Двойной щелчок на этой кнопке и на экране окно кода программы.

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

procedure Tform1.Button1Click(Sender:Tobject);

begin

<место курсора>

End;

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

procedure Tform1.Button1Click(Sender:Tobject);

Var

x,s:real; // описание переменных

begin

x:=StrToFloat(Edit1.Text); // ввод переменной х и преобразование ее из строкового в вещественный тип в соответствии с заданием

If (x>=0) and(x<=1) then begin S:=x*x; Panel2.Caption:=’Площадь квадрата=’+FloatToStr(s) end // вывод результата с преобразованием его в строковый тип данных для вывода в форму

else

begin s:=3,14*x*x; Panel2.Caption:=’Площадь круга=’+FloatToStr(s)

end;

end;

Вывод результата выполнен в заголовок панели Panel2.

Переменная хи результатsв форме – строкового типа, поэтому в программе переменнаяхпреобразована в вещественный тип данных (StrToFloat), а при выводеsпреобразуется в строковый тип данных (FloatToStr).

Множественный выбор

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

Delphiдля работы с переключателями предлагает следующие компоненты:

  • переключатель с независимой фиксацией (CheckBox), флажок этой компоненты можно переключать щелчком мыши;

  • переключатели с зависимой фиксацией – RadioButton(кнопки выбора),RadioGroup(группа переключателейRadioButton).

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

Пример 2.

Вывести на экран произведения одного из пяти известных поэтов. Вывод выполнить с помощью зависимого переключателя RadioGroup.

Конструирование формы

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

Itemsэтого компонента – список (зададим заголовки переключателей: (А.С. Пушкин, М.Ю. Лермонтов, С. Есенин, А. Блок, В. Маяковский).

ItemIndexуказывает, какой из списка выбран переключатель: -1 – выбран никакой, 0 – первый и т. д.).

Добавить компонент Panel2для вывода результата и метку.Label2с заголовкомCaption– Произведения известных поэтов.

Для запуска программы выберем компоненту Buttonи поместим ее наPanel1в верхней части формы. СвойствоCaptionу кнопки зададим – Выполнить (рис. 3).

Все выбранные компоненты находятся на странице Standard.

Рисунок 3 – Форма с размещенными объектами

Для установки обработчика события выберем компоненту Button1.

Двойной щелчок на этой компоненте и мы попадаем в редактор кода программы. В процедуре для получения результата используется оператор множественного выбора case of.

Результат зависит от месторасположения поэта.

procedure Tform1.Button1Click(Sender:Tobject);

Var

c:string;

begin

case RadioGroup1.ItemIndex of

0: c:='Поэмы: Руслан и Людмила, Бахчисарайский фонтан';

1: c:='Поэмы: Мцыри, Демон';

2: c:='Поэмы: Анна Снегина, Пугачев';

3: c:='Стихи О прекрасной даме';

4: c:='Поэмы: Хорошо, Облако в штанах';

end;

Panel2.Caption:=c;

end;

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

unit Unitradio1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, ExtCtrls;

type

TForm1 = class(TForm)

Panel1: TPanel;

Panel2: TPanel;

RadioGroup1: TRadioGroup;

Button1: TButton;

Label1: TLabel;

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);

Var

c:string;

begin

case RadioGroup1.ItemIndex of

0: c:='Поэмы: Руслан и Людмила, Бахчисарайский фонтан';

1: c:='Поэмы: Мцыри, Демон';

2: c:='Поэмы: Анна Снегина, Пугачев';

3: c:='Стихи О прекрасной даме';

4: c:='Поэмы: Хорошо, Облако в штанах';

end;

Panel2.Caption:=c;

end;

end.