
- •Лекція 12 Тема: Засоби візуальної розробки програм Перший проект
- •Компоненти
- •Подія й процедура обробки події
- •Редактор коду. Система підказок. Навігатор коду.
- •Система підказок
- •Навігатор коду
- •Шаблони коду. Довідкова система
- •Довідкова система
- •Структура проекту
- •Збереження проекту
- •Компіляція
- •Помилки
- •Попередження й підказки. Запуск програми.
- •Variable… is declared but never used in…
- •Запуск програми
- •Помилки часу виконання
- •Внесення змін
- •Остаточне настроювання додатка
- •Створення значка для додатка. Перенос додатка на інший комп’ютер.
- •Перенос додатка на інший комп’ютер
Внесення змін
Після декількох запусків програми Швидкість бігу виникає бажання внести зміни в програму. Наприклад, було б непогано, щоб після введення дистанції й натискання клавіші 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.