
- •Основи об’єктно-орієнтованого програмування
- •Факультету комп’ютерних наук та інформаційних технологій
- •Луцьк 2009
- •Факультету комп’ютерних наук та інформаційних технологій 1 Лабораторна робота №1 5 Програмування лінійних алгоритмів 5
- •2.1. Приклад створення додатка 14
- •9.3. Виконання індивідуального завдання 61
- •Програмування лінійних алгоритмів
- •1.1. Візуальне середовище delphi
- •1.2. Приклад створення додатка
- •1.2.1. Збереження проекта
- •1.2.2. Настройка вікон
- •1.2.3. Зміна заголовка Форми
- •1.2.4. Розміщення компонентів на Формі
- •1.2.5. Написання процедури обробки події створення Форми (FormCreate)
- •1.2.6. Написання процедури обробки події натиснення кнопки Button1 (Button1Click)
- •1.2.7. Текст модуля UnLinAlg
- •X,y,z,a,b,c,u : extended; // оголошення локальних змінних
- •1.2.8. Робота з додатком
- •1.3. Виконання індивідуального завдання
- •Індивідуальні завдання
- •Лабораторна робота №2 Програмування алгоритмів, що розгалужуються
- •2.1. Приклад створення додатка
- •2.1.1. Розміщення компонентів на Формі
- •2.1.2. Створення процедур обробки подій FormСreate і Button1Сlick
- •2.1.3. Текст модуля UnRazvAlg
- •2.1.4. Робота з додатком
- •2.2. Виконання індивідуального завдання
- •Індивідуальні завдання
- •Лабораторна робота №3 Програмування циклічних алгоритмів
- •3.1. Відладка модулів проекта
- •3.1.1. Відладка синтаксичних помилок
- •3.1.2. Відладка логічних помилок
- •3.2. Приклад створення додатка
- •3.2.1. Розміщення компонентів на Формі
- •3.2.2. Текст модуля UnCiklAlg
- •3.3. Виконання індивідуального завдання
- •Індивідуальні завдання
- •Лабораторна робота №4 Програмування алгоритмів з використанням масивів
- •4.1. Приклад створення додатка
- •4.1.1. Розміщення компонентів на Формі
- •4.1.2. Створення процедур обробки подій SpinEdit1Change і SpinEdit2Change
- •4.1.3. Текст модуля UnMas
- •4.1.4. Робота з додатком
- •4.2. Виконання індивідуального завдання
- •Індивідуальні завдання
- •Лабораторна робота №5 програмування Алгоритмів з використанням рядків
- •5.1. Приклад створення додатка
- •5.1.1. Розміщення компонентів на Формі
- •5.1.2. Створення процедур обробки подій
- •5.1.3. Текст модуля UnStr
- •Індивідуальні завдання
- •Лабораторна робота №6 Програмування алгоритмів з використанням записів
- •6.1. Приклад створення застосування
- •6.1.1. Розміщення компонентів на Формі
- •6.1.2. Створення процедур обробки подій FormCreate і Button1Click
- •6.1.3. Текст модуля UnZap
- •6.2. Виконання індивідуального завдання
- •Індивідуальні завдання
- •Лабораторна робота №7 Програмування алгоритмів з використанням файлів
- •7.1. Приклад створення застосування
- •7.1.1. Розміщення компонентів на Формі
- •7.1.2. Створення процедур обробки подій
- •7.1.3. Текст модуля UnFile
- •7.1.4. Робота із застосуванням
- •7.2. Індивідуальні завдання
- •Лабораторна робота №8 Програмування алгоритмів з використанням функцій і процедур. Створення модулів
- •8.1. Приклад створення додатка
- •8.1.1. Розміщення компонентів на Формі
- •8.1.2. Створення модуля і підключення його до проекта
- •8.1.3. Текст модуля UnFuncProc
- •8.1.4. Текст модуля UnModul
- •8.2. Виконання індивідуального завдання
- •Індивідуальні завдання
- •Лабораторна робота №9 Програмування алгоритмів з використанням динамічних структур даних
- •Приклади створення застосувань
- •9.1. Використання динамічних масивів
- •9.1.1. Розміщення компонентів на Формі
- •9.1.2. Створення процедур обробки подій FormCreate і Button1Click
- •9.1.3. Текст модуля UnDinMas
- •9.2. Використання динамічних списків
- •9.2.1. Розміщення компонентів на Формі
- •9.2.2. Створення процедур обробки подій FormCreate і Button1Click
- •9.2.3. Текст модуля UnStek
- •9.3. Виконання індивідуального завдання
- •Навчально-методичне видання
- •43018, М. Луцьк, вул. Львівська, 75
5.1.2. Створення процедур обробки подій
У момент запуску додатка, коли панель інтерфейсу з'являється на екрані, для користувача зручно щоб курсор вже знаходився в полі редактора компонента ComboBox. При активізації Форми виникає подія OnActivate, яку можна використовувати для передачі фокусу введення компонента ComboBox. Для створення процедури-обробника цієї події необхідно в Інспекторові Об'єктів вибрати компонент Form1, на сторінці Events знайти подію OnActivate і двічі клацнути “мишею” по його правій (білою) частині. Курсор встановиться в тексті процедури-обробника події активізації Форми: procedure TForm1.FormActivate(Sender: TObject). У цьому місці процедури наберіть оператора передачі фокусу введення компонента ComboBox1 (див. текст модуля UnStr, який приведений в п. 5.1.3).
Відповідно до завдання необхідно, щоб при натисненні клавіші Enter рядок символів, який користувач набрав в полі редагування, переносився в список вибору компонента ComboBox. Для створення процедури-обробника цієї події необхідно в Інспекторові Об'єктів вибрати компонент ComboBox1, на сторінці Events знайти подію OnKeyPress і двічі клацнути “мишею” по його правій частині. Курсор встановиться в тексті процедури-обробника події натиснення клавіші на клавіатурі: procedure TForm1.ComboBox1KeyPress(Sender:TObject;var Key:Char). У цьому місці процедури, користуючись текстом модуля UnStr, наберіть операторів, які при натисненні клавіші Enter переносять рядок з поля редагування в список вибору і очищають поле редагування.
Процес створення процедури-обробника події натиснення клавіші “миші” в списку вибору procedure TForm1.ComboBox1Click(Sender: TObject) виконується аналогічно для події OnClick компонента
ComboBox1. Користуючись текстом модуля UnStr, наберіть операторів, які здійснюють основний алгоритм обробки символів вибраного рядка.
5.1.3. Текст модуля UnStr
Unit UnStr;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs
StdCtrls, Buttons;
type
TForm1 = class(TForm)
Label2: TLabel;
Label3: TLabel;
BitBtn1: TBitBtn;
ComboBox1: TComboBox;
Label1: TLabel;
procedure ComboBox1KeyPress(Sender: TObject; var Key: Char);
procedure ComboBox1Click(Sender: TObject);
procedure FormActivate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
Implementation
{$R *.DFM}
// Обробка події активізації Форми
procedure TForm1.FormActivate(Sender: TObject);
begin
ComboBox1.SetFocus; // передача фокусу введення ComboBox1
end;
// Обробка події введення символу і натиснення клавіші Enter
procedure TForm1.ComboBox1KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then // якщо натиснута клавіша Enter те
begin // рядок з поля редагування заноситься
ComboBox1.Items.Add(ComboBox1.Text); // в список вибору
ComboBox1.Text:=''; // очищення вікна редагування
end;
end;
// обробка події натиснення клавіші "миші" в списку вибору
procedure TForm1.ComboBox1Click(Sender: TObject);
var
st : string;
n,i,nst,ind: integer;
begin
n:=0; // n містить кількість слів
ind:=0;
nst:=ComboBox1.ItemIndex; // визначення номера вибраної стрічки
st:=ComboBox1.Items[nst]; // st присвоюється вибрана стрічка
for i:=1 to Length(st) do // перегляд всіх символів стрічки
case ind of
0 : if st[i]<>' ' then // якщо зустрівся символ
begin
ind:=1;
n:=n+1; // кількість слів збільшується на одиницю
end;
1 : if st[i]=' ' then // якщо зустрівся пробіл
ind:=0;
end;
Label3.Caption:=IntToStr(n); // вивід кількості слів в Label3
end;
end.
5.2. Виконання індивідуального завдання
У всіх завданнях початкові дані вводити за допомогою компонента Edit в компонент ListBox, або за допомогою властивості Text у властивість Items компонента ComboBox. Результат виводити за допомогою компонента Label. Введення рядка закінчувати натисненням клавіші Enter. Робота додатка повинна завершуватися натисненням кнопки Close.
Для перевірки функціонування додатка підготувати декілька тестів.