- •Палітра Компонентів Delphi
- •Редактор Коду Delphi
- •Конструктор Форм
- •Інспектор Об’єктів. Принцип візуальної розробки програм
- •Завершення роботи з проектом та створення нового проекту
- •Збереження проекту
- •Відкриття існуючого проекту
- •Завершення виконання Delphi-програми
- •Лабораторна робота №1
- •Робота з Delphi-програмою Структура Delphi-програм
- •Виконання Delphi-програми
- •Завдання
- •Теоретичні відомості
- •Лабораторна робота №2
- •Розробка проекту «Діалог»
- •Мал. Діалог Аналіз проекту
- •Хід роботи
- •Завдання для самостійного виконання
- •Лабораторна робота №3
- •Завдання
- •Теоретичні відомості
- •Лабораторна робота №4
- •Розробка проекту «Ваша вага»
- •Хід роботи
- •Розробка проекту «Обмін валюти»
- •Хід роботи
- •Лабораторна робота №5
- •Завдання
- •Хід роботи
- •Теоретичні відомості Оператори if і case мови Паскаль
- •Кнопки-перемикачі в Delphi|
- •Лабораторна робота №6
- •Завдання
- •Хід роботи
- •Теоретичні відомості Типи даних для роботи з|із| рядками Короткі рядки типу|типа| ShortString| і String|[n]
- •Довгий рядок типу|типа| String|
- •Компонент tComboBox|
- •Компонент tBitBtn|
- •Обробка подій
- •Лабораторна робота №7
- •Розробка проекту «Гороскоп»
- •Хід роботи
- •Розробка проекту «Фізичний конвектор»
- •Хід роботи
- •Лабораторна робота №8
- •Розробка проекту «Рейтинг країн за результатами олімпійських змагань»
- •Хід роботи
- •Лабораторна робота №9
- •Розробка проекту «Журнал олімпіади»
- •Хід роботи
- •Лабораторна робота №10
- •Завдання
- •Хід роботи
- •2. Установка
- •3. Тестування створеної компоненти
- •Лабораторна робота №11
- •Розробка проекту «Побудова графіка функції»
- •Хід роботи
- •Лабораторна робота №12
- •Розробка проекту «Графічний конструктор»
- •Хід роботи
- •Лабораторна робота №13
- •Розробка проекту «Чат для локальної та глобальної мережі»
- •Хід роботи
- •Розробка форми на настройок
- •Розробка програмного коду
- •Лабораторна робота №14.
- •Завдання
- •Хід роботи
- •Теоретичні відомості
- •Етапи створення баз даних в Delphi.
- •Компонент тТаblе
- •Модуль даних
- •Лабораторна робота №15
- •Завдання
- •Хід роботи
- •Теоретичні відомості
- •Лабораторна робота №16
- •Завдання
- •Хід роботи
- •Теоретичні відомості
- •Лабораторна робота №17
- •Завдання
- •Хід роботи
- •Теоретичні відомості
- •Лабораторна робота №18
- •Завдання
- •Хід роботи
- •Теоретичні відомості
- •Список літератури
Лабораторна робота №15
Тема: Поля таблиць в Delphi.
Мета роботи: Навчити використовувати редактор полів.
Завдання
Створити проект для роботи з редактором полів в Delphi.
Хід роботи
Запустіть проект Торгівля на виконання.
В модулі даних виділіть елемент першої таблиці.
Натисніть на ньому правою кнопкою миші і виберіть елемент Fields Editor. У вікні редактора натисніть праву кнопку миші і виберіть команду Add All Fields, після чого всі поля таблиці стануть статичними.
Використовуючи інспектор об’єктів присвойте властивостям Display Label об’єктів Field українські назви полів.
Задайте властивість Visible = False поля, яке ви не хочете висвітлювати.
Виконайте вказані операції для всіх таблиць бази даних.
Перегляньте вміст всієї таблиць через відповідне використання елементів відображення.
За допомогою програми DataBase Desktop доповніть таблицю Покупців до 15 покупців та таблицю Товарів до 20 товарів.
Встановіть в таблиці Замовлення три нові поля підстановки – Прізвище покупця, Товар та Cina_odynyci.
Задайте властивість DisplayLabel поля в Cina_odynyci в Ціна одиниці.
Встановіть в таблиці Замовлення обчислювальне поле Vartist і запишіть код для його обробника повідомлень.
Задайте властивість DisplayLabel цього поля в Вартість.
Встановіть на формі компоненті TDBGrid та TDBNavigator і підключіть їх до таблиці Замовлення.
Відредагуйте стовпці Columns компонента TDBGrid так, щоб виводилися лише поля Прізвище покупця, Товар, Дата замовлення, Замовлена кількість Ціна одиниці Вартість.
Доповніть за допомогою створеного проекту таблицю Замовлення до 30 замовників.
Теоретичні відомості
Поля таблиць в Delphi.
Кожна таблиця БД і, відповідно, кожний набір даних програми має власну структуру, яка визначається сукупністю полів. Кожне поле являє собою опис типу даних, якому повинно відповідати значення, що знаходиться в запису на певному місці. Інакше, полем можна назвати сукупність комірок з даними певного типу, розміщені в одному і тому ж місті в кожному запису набору даних, або простіше — це стовпець в таблиці.
В наборі даних програми баз даних Delphi кожному полю відповідає власний об’єкт. Основою об’єктів полів є клас TField, який інкапсулює основні властивості абстрактного поля, що не залежать від типу даних. Від цього базового класу породжені інші класи, що забезпечують функціонування реальних об’єктів полів, що залежать від типу даних.
Клас TField має набір дуже зручних властивостей, що дозволяють звертатися до кожного поля в залежності від його реального типу в базі даних. Наприклад, властивість AsString дозволяє одержати доступ до значення поля в текстовому форматі. Крім того є властивості AsBoolean, AsDataTime, AsFloat, AsInteger.
Кожне поле відображується в наборі даних не як тип TField, а як один із його нащадків в залежності від типу цього поля. Наприклад стрінгове поле відображується в виді TStringField, поле з автозаповненням – TАutoIncField.
Об’єкти полів.
Об’єкти полів інкапсулюють властивості і методи полів різних типів даних. Вони функціонують сумісно з набором даних і дуже тісно пов’язані з ним. Наприклад, для того щоб одержати значення полів з поточного запису набору даних, розробник повинен створити приблизно такий код:
Editl.Text := Tablе1.Fields[0].AsString;
Властивість Fields являє собою індексований список об’єктів полів набору даних. Якщо програміст не змінює порядок слідування полів в наборі даних, то розміщення об’єктів полів відповідає структурі таблиці бази даних.
Кожний об’єкт поля зберігає ряд параметрів, що визначають поле. Наприклад, в наборі даних до об’єкту поля можно звернутися, знаючи лише назву поля:
Editl.Text := Tablel.FieldByName('SomeField').AsString;
Серед властивостей TTables, що пов’язані з TField особливо можна виділити property FieldValues [Сonst FieldName: string]: Variant, яка дає доступ на читання і запис до значень всіх полів поточного запису набору даних. Ідентифікація поля здійснюється за його іменем, що передається в параметрі FieldName:
Tablel.FieldValues['SomeField'] := Edit1.Text;
В основі класів, що описують ієрархію типізованих полів, лежить клас TField. Від нього породжені інші класи, що забезпечують роботу цілих груп полів, об’єднаних за типами даних. Що таке об’єкт поля, і які можливості він надає програмісту?
По-перше, призначення класу TField як базового класу поля полягає в умінні взаємодіяти з компонентом відображення даних для забезпечення правильної візуалізації даних. Наприклад, об’єкт поля зберігає спосіб вирівнювання, параметри шрифту, текст заголовка і т. д.
По-друге, з точки зору набору даних, об’єкт поля є сховищем поточного значення цього поля (а не всього стовпця даних, як це можна собі уявити за назвою).
Компоненти відображення даних при роботі с набором даних взаємодіють саме з полями. Колонки компонента TDBGrid при відсутності додаткових настройок відповідає розміщенню об’єктів полів в зв’язаному наборі даних.
В Delphi передбачено два способи створення об’єктів полів. Динамічні поля використовуються програмою у випадку, коли розробник не створив для них об’єкти явним чином на етапі розробки. Кожний не заданий явно об’єкт поля автоматично створюється при відкритті набору даних у відповідності із структурою зв’язаної таблиці БД. Довільний об’єкт поля є прямим наслідником класу TField, а його конкретний тип залежить від типу даних поля таблиці. При цьому властивості динамічного поля встановлюються у відповідності з параметрами поля таблиці бази даних.
Компонент доступу до даних після підключення до таблиці БД без додаткових настроювань використовують лише динамічні поля. До властивостей і методів динамічних полів можна звернутися програмно, для цього слід використовувати індексовану властивість Fields компонента доступу до даним, яке об’єднує всі поля набору даних.
Динамічні поля використовується у випадках, коли задані характеристики полів в таблиці бази даних повністю задовольняють розробника і немає необхідності розглядати будь-яке поле поза набором даних.
Статичні поля створюються програмістом на етапі розробки, їх властивості доступні в Інспекторі об’єктів, а їх назви можна вибрати із списку об’єктів активної форми в верхній частині Інспектора об’єктів. Назва статичного об’єкта поля звичайно складається з назви таблиці і поля, наприклад, OrdersCustNo.
Створюються статичні об’єкти полів за допомогою спеціалізованого Редактора полів, який викликається подвійним клацанням на компоненті набору даних на формі або командою Fields Editor із контекстного меню цього компонента.
Редактор полів являє собою простий список вже створених статичних полів, все керування здійснюється командами із контекстного меню. В верхній частині вікна Редактора розміщені кнопки навігатора для переміщення по набору даних, які активні тільки при відкритому наборі даних.
Добавити до списку статичних полів нове поле можна за допомогою команди Add Fields із контекстного меню Редактора. Вилучення елемента із списку здійснюється клавішею Delete. Перетаскуванням елементів списку за допомогою миші можна змінити їх розміщення. Таким чином, можна створювати довільні комбінації статичних полів.
Як тільки для набору даних створений хоча б один статичний об’єкт поля, вважається, що набір даних містить лише ті поля, які є в списку статичних полів. Цю особливість можна використати для штучного обмеження структури даних таблиць. Всі поля набору даних розміщені в тому порядку, як це вказано в списку Редактора полів, незалежно від їх реального розміщення в таблиці бази даних.
Як вже говорилося вище, в великій ієрархії класів для полів різних типів даних клас TField є базовим, він інкапсулює властивості і методи абстрактного поля даних. Саме від нього походять всі класи типізованих полів. В реальній роботі клас TField не використовується, але його значення важко переоцінити. Практично всі основні властивості класів типізованих полів успадковані від класу TField без будь-яких змін, а додаткові властивості і методи забезпечують роботу конкретного типу даних.
Властивість DisplayLabel дає можливість встановлювати ім’я поля, від яким воно виводиться в елементах відображення. Властивість Visible дозволяє робити це поле невидимим в елементі відображення.
Питання для самоконтролю:
Для чого призначений редактор полів?
Як зробити поля таблиці статичними?
Як призначити українські назви полів?
Які поля називають обчислювальними?
Які поля називають підстановчими?
Як створти для таблиці обчислювальне поле?
Як створити для таблиці підстановче поле?
Для чого призначений редактор полів?
