Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ООП_самостійне_опрацюв.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
1.22 Mб
Скачать

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 після закінчення.

Питання для самоконтролю:

  1. Які поля називають обчислювальними?

  2. Які поля називають підстановчими?

  3. Як створити для таблиці обчислювальне поле?

  4. Як створити для таблиці підстановче поле?

Тема 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.

Питання для самоконтролю:

  1. Яке призначення компоненти TBDEdit?

  2. Які властивості компоненти забезпечують зв'язок з даними?

  3. Яка подія наступає при зміні тексту у вікні редагування?

  4. Які є методи для роботи з виділеним фрагментом тексту?

  5. Яка властивість відміняє всі зміни?

  6. Що дозволяє встановити властивість CharCase?

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]