- •Тема 1. Поняття про об’єктно-орієнтоване програмування. Поняття про об’єктно-орієнтоване програмування
- •Інструмент прискореної розробки програм
- •Список файлів проекту.
- •Деякі важливі принципи візуального програмування.
- •Вікна інспектора об'єктів, форми, модуля.
- •Лабораторна робота №1 «Робота в середовищі Delphi»
- •Тема 2. Основи об’єктно-орієнтованого програмування.
- •Лабораторна робота №2 «Створення типового вікна Windows-додатку. Властивості об’єктів форми.»
- •Теоретичні відомості:
- •I. Властивості об’єкту Форма.
- •Теоретичні питання:
- •Тема 3. Особливості ооп: основні концепції
- •Лабораторна робота №3 Робота з формою та компонентами Panel, Label, Edit, Button.
- •Лабораторна робота №4 Робота над проектом «Альбом картинок» (компонент Image вкладки Additional)
- •Тема 4. Структура програми Структура програми складається з:
- •Структура проекту
- •Структура модуля
- •Елементи програми
- •Елементи мови Алфавіт
- •Лексеми
- •Теоретичні питання
- •Лабораторна робота №5 Робота над проектом «Текстовий редактор»
- •Тема 5. Типи даних. Введення та виведення числових даних. Функції перетворення. Математичні функції
- •Прості типи
- •Порядкові типи
- •Цілі типи
- •Введення та виведення числових даних
- •Допомога 1.
- •Допомога 2.
- •Лабораторна робота №6. «Створення програм лінійної структури. Створення програми «Калькулятор»
- •В аріант завдання для вибору:
- •Тема 6. Оператори мови Delphi
- •Лабораторна робота №7 Створення найпростішого Windows-Додатка в Delphi, з використанням умовного оператора та оператора вибору.
- •1 Спосіб розв’язку квадратного рівняння
- •2 Спосіб розв’язання квадратного рівняння
- •Створити додатки за вказаним варіантом та записати блок-схему алгоритму:
- •Лабораторна робота № 8 «Створення програм з використанням операторів циклів»
- •Лабораторна робота № 9 «Розробка графічного інтерфейсу програми. Основні керуючі елементи.»
- •1. Програмування об’єкту – перемикач (tRadioButton).
- •Програмування об’єкту – прапорець (tCheckBox).
- •Тема 7. Масиви
- •Лабораторна робота № 10 «Структуровані типи даних»
- •Тема 8. Робота з файлами
- •Лабораторна робота №11 «Файлові типи даних»
- •Тема 9. Допоміжні алгоритми
- •Лабораторна робота № 12 «Створення програм з використанням процедур та функцій»
- •Тема 10. Работа з графікою та мультимедіа
- •Реалізація мультимедійних технологій. Відтворення відеокліпів
- •Внимание!
- •Лабораторна робота № 13 «Створення проекту «Побудова графіка функцій»»
- •Тема 11. Створення анімації в Delphi
- •Лабораторна робота № 14 «Створення проекту «Графічний конструктор»»
- •Лабораторна робота № 15 Створення багатовіконного проекту «Тест з географії»
- •Форма «Тестування» — модуль f_Test
- •Форма «Результат» — модуль fRes
- •Форма «Домопога» — модуль fInstr unit f__lnstr;
- •Тема 12. Організація роботи з таблицями та базами даних. Лабораторна робота №16. Розробка проекту «Рейтинг країн за результатами олімпійських змагань»
- •Лабораторна робота № 17 Створення проекту «Довідник по країнах»
- •Лабораторна робота № 18 Створення проекту «Телефонна книга»
- •Лабораторна робота № 19 Створення проекту «Довідник по тваринах»
- •Лабораторна робота № 20 Створення довідкової системи
- •Хід роботи
Лабораторна робота № 17 Створення проекту «Довідник по країнах»
Завдання. Створити програму, яка даватиме змогу користувачу переключатися між закладками з назвою країни і виводити в таблицю інформацію про столицю, валюту, територію та населення даної країни (рис.30).
Аналіз проекту. Проект можна виконати, використовуючи компонент середовища Delphi—односторінковий блокнот TabControl (вкладка палітри компонентів Win32). Цей компонент являє собою прямокутну область з набором вкладок, перемикання між якими відбувається автоматично при виборі однієї з них. Односторінковий блокнот названо так через те, що він має одну спільну сторінку для всіх вкладок і всі дії щодо зміни інформації мають відбуватися програмно. Для цього створюють процедуру обробки події OnChage.
У проекті використаємо такі властивості компонента TabControl:
• MultiLine —якщо ця властивість набуває значення True, то вкладки можуть відображатися у декількох рядках;
• Tablndex — вказує номер вибраної закладки в масиві рядків. Алгоритм розробки проекту
Створити папку D:\Delphi\Pract_17.
Завантажити середовище візуального програмування Delphi.
Розмістити на формі візуальні компоненти TabControl1 та StringGrid1.
Cамостійно розробити проект «Довідник по країнах».
4. Зберегти проект у папці D:\Delphi\Pract_17.
Підказка. Скористайтесь описом властивостей компонента StringGrid, який наведено в попередньому проекті. У процедурі опрацювання події OnChage для компонента TabControll розмістіть команди із внесення необхідних даних про країну у другий стовпчик таблиці StringGrid1 залежно від обраної вкладки. Відомості про країни вносять у розділі опису констант (const) у вигляді масиву.
Лістинг програми: unit Unit1; interface uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, ComCtrls, jpeg, ExtCtrls; type
Private, public, end;
var Form1: TForml;
implementation {$R *.dfm}
const
strana:array[1..6,1..6] of PChar= (
('Україна' ,'Київ' /Гривня' ,'603.7' ,'50.1' ,'ukr.jpg'), ('США','Вашингтон','Долар','9363.2','237.8',' usa.jpg'),
('Англія' ,'Лондон','Фунт стерлінгів' , '244.1', '56.2',' angl.jpg‘),
('Франція',’Париж' ,’Франк' ,’551.6' ,'55.1' ,' fr.jpg ') ,
('Росія' ,’Москва' ,’Рубль' ,’17075.4' ,’163.7' ,’moskva.jpg') ,
('Китай' ,’Пекін' ,’Юань' ,’9597' ,’1488.5' ,’ kut.jpg у)) ;
procedure TForml.FormCreate(Sender: TObject);
begin
StringGridl.Cells[0,0]:='Столиця';
StringGridl.Cells[0,1]:='Валюта';
StringGridl .Cells [0 , 2] : = 'Територія (тис.кв.km)';
StringGridl.Cells[0,3]:='Населення (млн)';
TabControllChange(Sender);
end;
procedure TForml.TabControllChange (Sender: TObject) ;
begin
StringGridl.Cells[1,0]:=strana[TabControll. TabIndex+1,2] ;
StringGridl.Cells[1,1]:=strana[TabControll. TabIndex+1,3] ;
StringGridl.Cells[l,2]:=strana[TabControll. TabIndex+1,4] ;
StringGridl.Cells[1,3]:=strana[TabControll. TabIndex+1,5] ;
Image1.Picture.loadfromfile(strana[TabControll. TabIndex+1,6]) ;
end;
end.
Лабораторна робота № 18 Створення проекту «Телефонна книга»
Завдання. Створити програму, за допомогою якої користувач зміг би вести електронну телефонну книгу. Передбачити внесення нових записів та вилучення існуючих записів, редагування полів бази даних, пошук абонента, поновлення вмісту таблиці.
Аналіз проекту. В проекті знадобляться вміння створювати та супроводжувати спеціальний тип набору даних - базу даних. База даних (БД) - це електронне сховище даних. Створення, заповнення, поновлення та вилучення БД забезпечується за допомогою системи управління базами даних (СУБД). Доступ до БД з Delphi виконується через процесор баз даних BDE (Borland Database Engine). BDE - це набір драйверів, які забезпечують доступ до даних та управління ними.
Нині широко використовуються реляційні БД, які являють собою набори взаємопов'язаних таблиць. Окрім основного файла, який містить дані, для БД створюються файли індексів, ключів тощо. Імена всіх файлів, що належать до однієї БД, будуть однаковими та відрізнятимуться тільки розширенням. Таблиця БД складається з рядків та стовпчиків. Рядки називаються записами, а стовпчики - полями. Кожне поле повинне мати унікальне ім'я в межах таблиці, якій воно належить. У полі можуть зберігатися дані тільки одного типу, який задається при створенні таблиці.
Для кожної таблиці можуть бути задані ключі та індекси. Ключем називається комбінація полів набору даних, які визначають кожен запис у таблиці. Поля, що утворюють ключ називаються ключовими. Отже, в таблиці не може міститися другого такого запису, для якого б значення ключових полів повністю збігалися зі значеннями ключових полів другого запису. Індекс використовується для впорядкування таблиці. Він будується на основі полів таблиці.
Delphi підтримує роботу з таблицями деяких СУБД, зокрема і СУБД Paradox. Для роботи з БД в Delphi існують спеціальні інструментальні засоби, серед яких є програма DatabaseDesktop. Ця програма дає змогу створювати та редагувати таблиці БД.
Розглянемо послідовність створення БД «Телефонний довідник» з використанням DatabaseDesktop.
Алгоритм розробки проекту
Створити папку D:\Delphi\Pract_18.
Створити папку D:\Delphi\Pract_18\DB - для збереження файлів БД.
Створити для БД псевдонім, який буде посилатися на папку, де зберігається БД. Для цього в середовищі програмування Delphi запустити програму SQL Explorer (Головне меню/ База данних/ Explorer) (рис. 31).
У вікні програми SQL Explorer вибрати режим меню Object→New. У вікні, яке з'явилось, залишити без змін тип БД (STANDARD) та натиснути кнопку ОК. У лівій частині вікна адміністратора БД з'явиться рядок з написом STANDARD1. Його необхідно змінити на бажане ім'я, наприклад, Book. У правому полі вікна SQL Explorer треба змінити параметр PATH, присвоївши йому значення шляху, який визначає місце розташування БД: D:\Delphi\Pract_17\DB.
4. Щоб запам'ятати ім'я псевдоніма необхідно клікпути на ньому правою кнопкою мишки і в меню, що відкрилось, вибрати Apply та підтвердити кнопкою ОК збереження нового псевдоніма. Закрити вікно програми SQL Explorer.
5. Після призначення псевдоніма завантажити програму DatabaseDesktop (Головне меню/ Сервіс/DatabaseDesktop). У вікні програми DatabaseDesktop вибрати в Головному меню: File/New/ Table. У вікні, що відкриється, залишити тип таблиці Paradox 7 та натиснути ОК. У результаті на екрані з'явиться вікно визначення струкіури таблиці (рис. 32).
Кожен рядок таблиці відповідає полю таблиці. Стовпчики мають такі значення:
Fields Name - ім'я поля;
Туре - тип поля (А - рядок довжиною не більше ніж 255 символів, N — число з плаваючою крапкою тощо);
Size - розмір поля;
Key - ознака ключового поля (значення *).
6. Створити таблицю з полями Fam, Name, Adress, Telefon, Addish (рис. 33).
7. Після занесення всіх необхідних полів до запису таблиці виконати збереження таблиці у файл D:\Delphi\Pract_18\DB\telefon.db.
8. Для доступу до таблиці з програми Delphi виконати такі дії:
на формі Form1 розмістити компонент Table1 (вкладка BDE) —таблиця БД, за допомогою якої зчитуються дані безпосередньо з фізичної таблиці БД та передаються їх компонентам на формі; встановити для цього компонента властивості DatabaseName значення Book, властивості TableName значення telefon.db;
на формі Forml розмістити компонент DataSource1 (вкладка DataAccess) — джерело даних, що слугує для зв'язку між компонентами-наборами даних і компонентами, що їх відображають; надати властивості DataSet значення Table1;
на формі Form1 розмістити компонент DBGrid1 (вкладка DataControls) —відображає дані з БД у вигляді таблиці, надати властивості DataSource значення DataSource1;
для активізації даних, які зберігаються в таблиці БД telefon.db, змінити властивість Active компонента Table1 на True.
9. Зберегти проект у папці D:\Delphi\Pract_18.
10. Запустити проект та перевірити можливість роботи з БД: переміщення між записами за допомогою клавіш керування курсором, редагування та додавання записів (клавіша F2 або подвійний клік мишкою на заченні, яке треба змінити) (рис. 33).
Завдання для самостійного виконання
1. Змінити проект так, щоб була можливість працювати із записами БД за допомогою навігаційної панелі (рис. 34).
Підказка. Розмістити на формі Form1 компонент DBNavigator1 (вкладка Палітри компонентів DataControls), який являє собою набір кнопок для керування записами БД та забезпечує можливість переходу від запису до запису в таблиці БД, додавання, редагування, вилучення записів. Властивості DataSource цього компонента надати значення DataSourcel; для виведення «спливаючих» підказок до кнопок властивості ShowHint надати значення True; за бажанням можна змінити зміст «спливаючих» підказок— властивість Hints.
3. Змінити проект так, щоб була можливість виконувати пошук абонента за вказаним прізвищем.
Підказка. Розмістити на формі компонент Queryl (вкладка BDE), який передає сформовані на основі запиту дані з фізичної таблиці на компоненти, що їх відображають. Встановити для цього компонента властивості DatabaseName значення Book. Розмістити на формі компонент BitBtn1 із значенням властивості Caption=’Пошук абонента' та створити для нього процедуру опрацювання події OnCIick (див. лістинг програми).
4. Змінити проект так, щоб після перегляду результатів запиту в таблиці знову відображалась вся БД.
Підказка. Розмістити на формі компонент BitBtn2 із значенням властивості Caption= ' Відобразити всю ТелКн' та створити для нього процедуру опрацювання події OnCIick з тілом: DataSource1.DataSet:=Table1;
Лістинг програми:
unit Unitl;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, DB, DBTables, Grids, DBGrids, StdCtrls, Buttons, ExtCtrls, DBCtrls;
Type
Private, public, end;
Var Form1: TForm1; implementation
procedure TForm1.BitBtn1Click(Sender: TObject);
var
fam: string[30];
begin
fam:=InputBox('Пошук інформації в БД' ,'Вкажіть прізвище та натисніть ОК',' ‘);
if fam <>’ ' then // якщо прізвище введено
begin
with forml.Query1 do
begin
Close; {закрити файл-результат виконання попереднього запиту}
SQL.Clear; // вилучити текст попереднього запиту
SQL.Add(‘SELECT Fam, Name, Telefon'); // створення нового запиту SQL
SQL.Add('FROM ":Book:telefon.db"');
SQL.Add('WHERE');
SQL.AddC (Fam = "'+ fam + '")');
Open; // активізація виконання запиту
end;
if Query1.RecordCount <> 0 then
begin
DataSource1.DataSet:=Queryl {відобразити рез-т виконання запиту}
else
begin
ShowMessage('В БД немає записів, які задовольняють критеріям запиту');
DataSource1.DataSet:=Table1;
end; end; end;
procedure TForm1.BitBtn2Click(Sender: TObject);
begin
DataSource1.DataSet:=Table1;
end; end.