- •Розділ 1. Об’єктно-орієнтоване програмування
- •Тема 1.1. Візуальне програмування.
- •Тема 1.2. Приклади та застосування інкапсуляції, успадкування, поліморфізму.
- •Тема 1.3. Бібліотека візуальних компонентів vcl та її базові класи.
- •1. Клас tWinControl.
- •2. Клас tСustomControl.
- •3. Клас tGraphicControl.
- •Тема 1.4. Обробка виняткових ситуацій.
- •1. Використовування виняткових ситуацій.
- •2. Протоколювання виняткових ситуацій.
- •3. Коди помилок у виняткових ситуаціях.
- •4. Виняткова ситуація eAbort. Функція Assert.
- •Розділ 2. Мова програмування Object Pascal.
- •Тема 2.1. Середовище Delphi.
- •Тема 2.2. Елементи мови Object Pascal.
- •1. Коментарі.
- •2. Логічні вирази.
- •Тема 2.3. Типи даних, процедури та функції.
- •1. Вказівники та динамічна пам'ять. Динамічна пам'ять
- •Вказівники
- •Виділення і звільнення динамічної пам'яті
- •Процедури і функції для роботи з динамічною пам'яттю
- •Тема 2.4. Управляючі структури Object Pascal.
- •Розділ 3. Програмування в середовищі Delphi.
- •Тема 3.1. Застосування списків. Способи запису/читання зі списків.
- •Є списком CheckBox елементів.
- •Тема 3.2. Масиви.
- •1. Пошук мінімального (максимального) елементу масиву.
- •2. Пошук в масиві заданого елементу.
- •Тема 3.3. Робота з файлами.
- •Тема 3.4. Типи даних визначені програмістом.
- •1. Показники.
- •2. Динамічні змінні.
- •Тема 3.5. Графічні програми.
- •1. Бітові образи.
- •2. Мультиплікація.
- •Властивості компоненту Timer
- •Тема 3.6. Приклади застосування анімацій у Delphi.
- •Тема 3.7. Рекурсія.
- •1. Крива Гільберта.
- •2. Пошук шляху.|колії|
- •Значення властивостей компоненту stringGrid1
- •3. Пошук найкоротшого шляху.|колії|
- •Тема 3.8. Компоненти для інтернету. Компонента tSocketConnection
- •Розділ 4. Бази даних.
- •Тема 4.1. Види баз даних. Структура та зв’язки між таблицями. Бази даних
- •Класифікація баз даних
- •Структура бази даних
- •Модель бази даних в Delphi
- •Тема 4.2. Модифікація структури таблиці в bde.
- •1. Зміна структури таблиці.
- •2. Встановлення перевірок правильності даних.
- •3. Завдання вторинних індексів.
- •Тема 4.3. Об’єкти відображення даних бази даних Delphi.
- •1. Класифікація компонентів відображення даних.
- •2. Елемент керування тdbGrid.
- •3. Компонент tdbEdit.
- •4. Компонент tdNavigator.
- •Тема 4.4. Обчислювальні поля і поля підстановки в Delphi.
- •1. Створення поля підстановки (поля синхронного перегляду).
- •2. Обчислювальні поля.
- •Тема 4.5. Компонента tdbEdit.
- •Тема 4.6. Переміщення по записам таблиці. Набір методів і властивостей tDataSet. Огляд
- •Клас tDataSet
- •Відкриття і закриття DataSet
- •Тема 4.7. Налаштування фільтрів.|
- •Тема 4.8. Приклади застосування пошуку.
- •Тема 4.9. Поєднання різних видів пошуку.
- •Тема 4.10. Типи даних та пошук в діапазоні.
- •Список літератури
2. Обчислювальні поля.
Створимо обчислювальне поле Vartist для таблиці Замовлення, в якому будемо обчислювати вартість покупки, яка рівна добутку поля Zamov_kilkist з таблиці Замовлення на Cina_odynyci з таблиці Товар. Оскільки обчислення проводяться коректно лише між полями однієї таблиці, створимо спочатку в таблиці Замовлення відповідне поле підстановки Cina_odynyci, що синхронізоване з одноіменним полем таблиці Товар. Далі добавимо за допомогою редактора полів нове поле командою New Field із контекного меню. В діалоговому вікні New Field, що з’явилося, в текстових полях вказуються такі значення:
В полі Name (ім’я) – ім’я нового поля (Vartist).
В полі Type (Тип) – тип нового поля (Currency).
На панелі Field Type (Тип поля) включити перемикач Calculated (Обчислювальне поле).
Вираз для обчислення значень поля записів визначається обробником повідомлення OnCalcFields таблиці Замовлення, в якій розміщено дане поле.
procedure TDataModule2.TableZamovCalcFields(DataSet: TDataSet);
begin
TableZamovVartist.Value:=
TableZamovZamov_kilkist.Value*TableZamovCina_odynyci.Value;
end;
Тут:
TableZamovVartist – ім’я об’єкта TField, який належить таблиці Замовлення і містить в собі поле Vartist.
TableZamovZamov_kilkist – ім’я об’єкта TField, який належить таблиці Замовлення і містить в собі поле Zamov_kilkist.
TableZamovCina_odynyci – ім’я об’єкта TField, який належить таблиці Замовлення і містить в собі поле Cina_odynyci.
Примітка. При створенні нових полів в таблиці її властивість Active необхідно встановити в False і поновити в True після закінчення.
Питання для самоконтролю:
Які поля називають обчислювальними?
Які поля називають підстановчими?
Як створити для таблиці обчислювальне поле?
Як створити для таблиці підстановче поле?
Тема 4.5. Компонента tdbEdit.
TDBEdit – пов'язаний з даними аналог звичайного вікна редагування TEdit. Він дозволяє відображати і редагувати дані полів різних типів: рядок, число, булева величина. Перетворення значення поля в рядок тексту, що відображається в TDBEdit, проводиться автоматично. Якщо задати в компоненті ReadOnly = true, то він, як і TDBText, буде служити елементом відображення, але дещо більш витонченим, ніж TDBText.
Властивості компоненти, що забезпечують зв'язок з даними:
DataSource – джерело даних типу TDataSource
DataField – ім'я поля, з яким зв'язаний компонент
Field – об'єкт цього поля (тільки для читання)
Більшість решти властивостей (AutoSelect, AutoSize, CharCase і ін.) аналогічні властивостям компоненту TEdit. Але в TDBEdit головна властивість вікна - Text недоступна під час проектування. Текст у вікні визначається відповідним полем поточного запису і може змінюватися користувачем або програмно під час виконання. Відредаговане значення у вікні поміщається у відповідне поле набору даних.
Подія OnChange наступає при зміні тексту у вікні редагування. Вона викликається і при зміні тексту програмно, з допомогою властивості PasswordChar. Подія OnChange не наступає, якщо змінюється властивість CharCase.
Властивість CharCase дозволяє встановити, в якому вигляді зберігається текст: великими і маленькими ecNormal, тільки маленькими ecLowerCase, тільки великими ecUpperCase. Властивість CharCase впливає не лише на відображення на екрані, але й на саме значення властивості Text.
Властивість PasswordChar вказує символ, що заміняє фактичні символи, надруковані в компоненті. Використовується для введення паролів.
Властивість MaxLength вказує максимальну кількість символів, яку користувач може вводити в компоненту. Дана властивість обмежує лише ввід через клавіатуру, а програмно властивості Text можна присвоювати довгі послідовності символів, які потім будуть відображатись в компоненті TDBEdit.
Властивість AutoSize вказує, чи змінюється автоматично висота компоненти, підлаштовуючись під розмір тексту. По замовчуванню false - не налаштовується.
Властивість ReadOnly встановлює дані тільки для читання (при значенні true)
За допомогою властивості SelText можна зчитувати чи редактувати, виділений в об’єкті TDBEdit. Якщо текст не виділений, то при зчитуванні властивості повертається порожня стрічка, а при вводі текст додається, починаючи з позиції курсору.
Властивість SelLength визначає кількість виділених символів в рядку,
SelStart вказує позицію першого виділеного символа в тексті або, якщо виділення немає, то позицію курсора.
Метод CopyToClipboard Копіює виділений текст в буфер обміну
CutToClipboard вирізає виділений текст в буфер
PasteFromClipboard Переносить у вікно текст із буферу.
Метод Clear видаляє текст з вікна, ClearSelection видаляє текст, виділений у вікні.
Метод SelectAll Виділяє весь текст у вікні редагування
Властивість Undo відміняє всі зміни, що зберігалися в буфері обміну результатів редагування з моменту останнього виклику ClearUndo.
Питання для самоконтролю:
Яке призначення компоненти TBDEdit?
Які властивості компоненти забезпечують зв'язок з даними?
Яка подія наступає при зміні тексту у вікні редагування?
Які є методи для роботи з виділеним фрагментом тексту?
Яка властивість відміняє всі зміни?
Що дозволяє встановити властивість CharCase?
