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