Основы языка Delphi

         

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



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

unit. rub_l; interface

uses

Windows, Messages, SysUtils,

Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls;

type

TForm1 = class(TForm) Label1: TLabel;

Editl: TEdit; Label2: TLabel;

procedure EditlKeyPress(Sender: TObject; var Key: Char);



private

{ Private declarations } public

{ Public declarations } end;

var

Form1: TForm1;

implementation

{$R *.dfm}

// нажатие клавиши

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char) var

n : integer; // число

r : integer; // остаток от деления n на 10

text: string[10]; // формируемый поясняющий текст

begin

if Key = chr(VK_RETURN) then

begin

n := StrToInt(Editl.Text);
if n >
100

then n:=n mod 100;

if (n >
= 11) and (n <= 14) then

text:=' рублей' else begin

r:= n mod 10; case r of

1: text:=' рубль'; 2 .. 4: text:=' рубля';

else text:=' рублей';

end;

end;

Label2.Caption := IntToStr(n)+ text; end;

end;

end.

Рассмотрим фрагмент программы (листинг 2.5), которая вычисляет дату следующего дня, используя сегодняшнюю дату, представленную тремя переменными: day (день), month (месяц) и year (год).

Сначала с помощью инструкции сазе проверяется, является ли текущий день последним днем месяца. Если текущий месяц — февраль и если текущее число — 28, то дополнительно выполняется проверка, является ли год високосным. Для этого вычисляется остаток от деления года на 4. Если остаток равен нулю, то год високосный, и число 28 не является последним днем месяца.

Если выясняется, что текущий день — последний день месяца, то следующее число — первое. Затем проверяется, не является ли текущий месяц декабрем. Если нет, то увеличивается номер месяца, а если да, то увеличивается номер года, а номеру месяца присваивается значение 1.



Содержание раздела