Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Glava_2.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
490.5 Кб
Скачать

Interface

uses

Windows, Messages, SysUtils, Classes,

Graphics, Controls, Forms, Dialogs, StdCtrls;

type

TForm1 = class(TForm)

Edit1: TEdit; // поле ввода веса в фунтах

Button1: TButton

; // кнопка Вычислить

Label1: TLabel; Label2: TLabel;

Label3: TLabel;

ListBox1: TListBox; // список стран

Label4: TLabel; // поле вывода рез-та — веса в килограммах

procedure FormCreate(Sender: TObject);

procedure ButtonlClick(Sender: TObject);

private {Private declarations }

public { Public declarations }

end;

var

Form1: TForml;

Implementation

{$R *.DFM}

procedure Tform1.FormCreate(Sender: TObject);

begin

{

ListBox1.items.add('Россия');

ListBox1.items.add('Австрия');

ListBox1.items.add('Англия');

ListBox1.items.add('Германия');

ListBox1.items.add ('Дания');

ListBoxl.items.add('Исландия');

ListBox1.items.add ('Италия');

ListBox1.items.add ('Нидерланды'); }

ListBox1.itemindex:=0;

end;

procedure TForm1.Button1Click(Sender: TObject);

var

funt:real; // вес в фунтах

kg:real; // вес в килограммах

k:real; // коэффициент пересчета

begin

case ListBox1.Itemindex of

0: k:=0.4095; // Россия

1: k:=0.453592; // Англия

2: k:=0.56001; // Австрия

3..5,7: k:=0.5; // Германия, Дания, Исландия, Нидерланды

6: k:=0.31762; // Италия

end;

funt:=StrToFloat(Edit1.Text);

kg:=k*funt;

label4.caption:=Edit1.Text+ ' ф. — это '

+ FloatToStrF(kg,ffFixed, 6,3) + 'кг.';

end;

end.

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

Рассмотрим еще один пример использования инструкции case. При выводе числовой информации с поясняющим текстом возникает проблема согласования выводимого значения и окончания поясняющего текста.

Например, в зависимости от числового значения поясняющий текст к денежной величине может быть: "рубль", "рублей" или "рубля" (123 рубля, 120 рублей, 121 рубль). Очевидно, что окончание поясняющего слова определяется последней цифрой числа, что отражено в табл. 2.8.

Таблица 2.8. Зависимость окончания текста от последней цифры числа

Цифра

Поясняющий текст

0, 5, 6, 7, 8, 9

Рублей

1

Рубль

2,3,4

Рубля

Приведенное в таблице правило имеет исключение для чисел, оканчивающихся на 11, 12, 13, 14. Для них поясняющий текст должен быть "рублей".

Диалоговое окно программы приведено на рис. 2.12, а текст — в листинге 2.4. Поясняющий текст формирует процедура обработки события OnKeyPress.

Рис. 2.12. Диалоговое окно программы

Листинг 2.4. Формирование поясняющего текста

unit rub_l;

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]