Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекція № 12 Перший проект.docx
Скачиваний:
15
Добавлен:
24.02.2016
Размер:
845.37 Кб
Скачать

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

Після декількох запусків програми Швидкість бігу виникає бажання внести зміни в програму. Наприклад, було б непогано, щоб після введення дистанції й натискання клавіші 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) + сек + #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:; // клавіша <Back Space>

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

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

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

end;

end;

end.

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