Внесення змін

Після декількох запусків програми Швидкість бігу виникає бажання внести зміни в програму. наприклад, було б непогано, щоб після введення дистанції і натискання клавіші Enter курсор переходив в поле Час. Або якби в поля Дистанція і Час користувач міг ввести тільки цифри.

Щоб внести зміни в програму, потрібно запустити Delphi і відкрити відповідний проект. Зробити це можна звичайним способом, вибравши з меню File команду Open Project. Можна також скористатися командою Reopen з меню File. При виборі команди Reopen відкривається список проектів, над якими програміст працював останнім часом.

У лістингу В5 приведена програма Швидкість бігу, в яку додані

Процедури обробки подій OnKeyPress Для компонентів Edit1 і Edit2.

Слід звернути увагу на те, що для додавання в програму процедури обробки події потрібно у вікні Object Inspector вибрати компонент, для якого створюється процедура, потім на вкладці Events вибрати подія і зробити подвійне клацання в полі імені процедури. Delphi сформує шаблон процедури обробки події. Після цього можна вводити інструкції, що реалізують процедуру обробки.

Лістинг В5. Модуль програми Швидкість бігу після внесення змін unit vrun1;

interface

uses

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

Dialogs, StdCtrls;

type

TForml = class (TForm) Editl: TEdit;

Edit2: TEdit; Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Buttonl: TButton;

Button2: TButton;

procedure Button1Click (Sender: TObject);

procedure Button2Click (Sender: TObject);

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

private

{Private declarations } public

{Public declarations } end;

var

Form1: TForm1;

implementation

{$ R * .dfm)

// натискання кнопки Обчислити

procedure TForm1.ButtonlClick (Sender: TObject);

var

dist: integer; // дистанція, метрів

t: real; // час як дробове число

min: integer; // час, хвилини

sek: integer; // час, секунди

v: real; // швидкість

begin

// отримати вихідні дані з полів введення

dist: = StrToInt (Editl.Text); t: = StrToFloat (Edit2.Text);
// попередні перетворення

min: = Trunc (t); // кількість хвилин - це ціла частина числа t

sek: = Trunc (t * 100) mod 100; // кількість секунд - це дрібна частина

// числа t

// обчислення

v: = (dist / 1000) / ((Min * 60 + sek) / 3600);

// висновок результату

label4.Caption : = 'Дистанція:' + Editl.Text +

'м' + # 13 + 'Час: '+ IntToStr (min) +

'хв' + IntToStr (sek) + 'S' + # 13 +

'Швидкість:' + FloatToStrF (v, ffFixed, 4,2) + ' км / год';

end;

// натискання кнопки Завершити

procedure TForml.Button2Click (Sender: TObject);

begin

Form1.Close; end;

// натискання клавіші в поле Дистанція

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

begin

// Key - символ, відповідний натиснутій клавіші.

// Якщо символ неприпустимий, то процедура заміняє його

// на символ з кодом 0. В результаті цього символ в поле

// редагування не виникає, і у користувача створюється

// враження, що програма не реагує на натискання деяких
// клавіш.

case Key of

'0' .. '9':; // цифра

# 8:; // клавіша & Lt; Back Space >

# 13: Edit2.SetFocus ; // клавіша " Enter"

// інші символи - заборонені

else Key : = Chr (0); // символ не відображати

end;

end;

end.

Після внесення змін проект слід зберегти. Для цього потрібно з меню File вибрати команду Save all.

 

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *