Материал: Лабораторная работа №16 Стандартные компоненты

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Лабораторные работы по информатике для специальности «Моделирование и исследование операций в организационно-технических системах»

Лабораторная работа № 16

Стандартные компоненты. TCheckBox. TRadioGroup. TRadioButton. TPanel. TGroupBox.

Введение

В лабораторной работе рассмотрены некоторые стандартные компоненты с вкладки

Standart. Рассмотрены компоненты TCheckBox, TRadioButton, TPanel, TGroupBox, TRadioGroup. Приведены примеры программ использующие рассмотренные компоненты.

Компонент TCheckBox

Компонент TCheckBox находится на вкладке Standart палитры компонентов (рисунок 1).

Рисунок 1 – Расположение компонента TCheckBox в палитре компонентов

Компонент TCheckBox предназначен для того, чтобы пользователь мог указать свое решение типа да/нет или да/нет/не уверен (в последнем случае флажок устанавливается, выглядит блеклым, см. рисунок 2). Это решение отражается в свойстве State компонента, доступном как для чтения, так и для записи. В составе диалогового окна может быть несколько компонентов TCheckBох причем состояние любого из них никак не зависит от состояния остальных, поэтому такие переключатели называются независимыми.

Рисунок 2 – Различные состояния независимого переключателя

Наиболее важные свойства компонента TCheckBox представлены в таблице 1.

Таблица 1 – Свойства компонента TCheckBox

Свойство

Описание

 

 

type TLeftRight = (taLeftJustify,

Определяет положение текста: taLeftJustify с

taRightJustify);

левой стороны компонента; taRightJustify с правой

property Alignment: TLeftRight;

стороны

 

property AllowGrayed: Boolean;

Разрешает/запрещает использование состояния

 

cbGrayed (не уверен)

property Caption: String;

Содержит связанный с компонентом текст

 

 

Лабораторные работы по информатике для специальности «Моделирование и исследование операций в организационно-технических системах»

Свойство

Описание

 

 

property Checked: Boolean;

Содержит значение, соответствующее выбору

 

пользователя. Состоянию cbChecked

 

соответствует значение True. Состояния

 

cbUnChecked и cbGrayed отражаются как False.

type TCheckBoxState = (cbUnChecked,

Содержит состояние компонента:

cbChecked, cbGrayed);

−

cbUnchecked – нет;

property State: TCheckBoxState;

−

cbChecked – да;

− cbGrayed – не уверен

 

 

 

 

Как и для компонента TButton, свойство Color компонента фактически игнорируется, а свойства Height и Width определяют размеры прямоугольника, в котором выводится связанный с флажком текст, и никак не влияют на размеры самого флажка. Текст указывается в свойстве Caption.

Во время прогона программы при щелчке на компоненте он циклически изменяет свое состояние.

Для этого компонента обычно используется только обработчик события OnClick. В этом обработчике анализируется текущее состояние переключателя и выполняются некоторые действия. Типичное тело обработчика OnClick для компонента TCheckBox имеет следующий вид:

procedure TForm1.CheckBox1Click(Sender: TObject);

begin

if CheckBoxl.Checked then ...

else ...

end;

или для трехпозиционного переключателя (свойство AllowGrayed=true)

procedure TForm1.CheckBox1Click(Sender: TObject); begin

case CheckBoxl.State of cbChecked : ...; cbUnСhecked: ...; cbGrayed : ...;

end;

end;

В качестве примера рассмотрим программу расчета стоимости покупки с учетом скидки на сумму покупки. Будем считать что покупатель может получить две скидки, а именно скидку 10% если идет распродажа и скидку 30% как постоянный покупатель. Одна скидка не зависит от другой и дается на всю сумму.

Создайте новую форму и поместите на нее два компонента TEdit, два TCheckBox, два TButton и один компонент TLabel. Расположите компоненты как показано на рисунке 3.

Установите значения свойств компонентов как указано в таблице 2.

Лабораторные работы по информатике для специальности «Моделирование и исследование операций в организационно-технических системах»

Рисунок 3 – Вид главной формы программы «Сумма покупки» Таблица 2 – Свойства компонентов

Свойство

Caption

AutoSize

WordWrap

 

 

 

 

edtCount

–

–

–

edtPrice

–

–

–

btnCalc

Вычислить

–

–

btnExit

Выход

–

–

chbPermament

Постоянный покупатель

–

–

chbAction

Распродажа

–

–

frmTovar

Сумма покупки

–

–

lbResult

–

False

True

 

 

 

 

Создайте обработчик события OnClick для кнопки btnCalc (листинг 1). В этом обработчике осуществляется расчет суммы покупки с учетом скидок и вывод результатов расчета в компонент lbResult.

Листинг 1 – Процедура обработки события OnClick компонента btnCalc

procedure TfrmTovar.btnCalcClick(Sender: TObject); var Price, //цена единицы товара

Count, //количество товара

Summa, //cумма Discount:real; //размер скидки

begin

Discount:=1.0;//нет скидок

{получение данных из строк ввода} Price:=StrToFloat(edtPrice.Text); Count:=StrToFloat(edtCount.Text);

//вычисление скидки //скидка как постоянному покупателю 30%

if chbPermanent.Checked then Discount:=Discount*0.7; //скидка при распродаже 10%

Лабораторные работы по информатике для специальности «Моделирование и исследование операций в организационно-технических системах»

if chbAction.Checked then Discount:=Discount*0.9;

//вычисление суммы покупки

Summa:=Price*Count*Discount;

//вывод результата lbResult.Caption:='Сумма покупки '+

FloatToStrF(Summa, ffFixed, 6, 2) + ' руб.';

//передать фокус ввода следующему компоненту btnExit.SetFocus;

end;

Последняя строка btnExit.SetFocus в обработчике события необходима для передачи фокуса ввода следующему компоненту, кнопке «Выход».

Обратите внимание, что обход компонентов с помощью клавиши <Tab> может происходить в неправильном порядке. Для изменения порядка обхода компонентов вызовите из контекстного меню диалоговое окно «Edit Tab Order» (рисунок 4).

Рисунок 4 – Вызов диалогового окна "Edit Tab Order"

В диалоговом окне «Edit Tab Order» с помощью кнопок и установите требуемый порядок обхода компонентов (рисунок 5).

Рисунок 5 – Диалоговое окно "Edit Tab Order"

Лабораторные работы по информатике для специальности «Моделирование и исследование операций в организационно-технических системах»

Установите порядок обхода компонентов с помощью клавиши <Tab> как показано на рисунке 5, если это необходимо.

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

Листинг 2

unit UTovar;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;

type

TfrmTovar = class(TForm) edtCount: TEdit; edtPrice: TEdit; btnCalc: TButton; chbPermanent: TCheckBox; chbAction: TCheckBox; btnExit: TButton; lbResult: TLabel;

procedure btnCalcClick(Sender: TObject);

procedure edtCountKeyPress(Sender: TObject; var Key: Char); procedure btnExitClick(Sender: TObject);

procedure chbPermanentKeyPress(Sender: TObject;

var Key: Char); procedure chbActionKeyPress(Sender: TObject; var Key: Char); procedure FormCreate(Sender: TObject);

private

{Private declarations } public

{Public declarations } end;

var

frmTovar: TfrmTovar;

implementation

{$R *.dfm}

//нажатие кнопки "Вычислить"

procedure TfrmTovar.btnCalcClick(Sender: TObject); var Price, //цена единицы товара

Count, //количество товара

Summa, //cумма Discount:real; //размер скидки

begin

Discount:=1.0;//нет скидок

{получение данных из строк ввода} Price:=StrToFloat(edtPrice.Text); Count:=StrToFloat(edtCount.Text);

Источник: https://studfile.net/preview/15720464/