Поняття елементи керування


Елементи управління це графічні об'єкти, які розташовані на формі для показу або введення даних, викання дій або полегшення читання форми.

До елементів управління належать текстові поля, списки, перемикачі, кнопки тощо. Вони дають користувачеві змогу запускати макроси або веб-сценарії. Елементи управління можуть бути зв'язані, вільні або обчислювані.

Зв'язаний елемент управління запозичує і відображає змінювані дані з поля таблиці (бази даних) або запиту: текст, дату, число, значення «Так / Ні», зображення або діаграми.

Вільний елемент управління не має змінюваного джерела даних. Наприклад, надпис з назвою форми — це вільний елемент управління.

Обчислюваний елемент управління має за джерело даних вираз, а не поле. Значення, яке потрібно використовувати як джерело даних для цього елемента управління, вказують у визначенні виразу. Запис виразу може містити оператори, назви елементів управління, назви полів, функцій і сталих.

Обробник подійце частина програми, що виконує певні дії у відповідь на дії користувача.

Середовище програмування Lazarus при розробці графічного інтерфейсу програми надає можливість використовувати велику бібліотеку візуальних компонентів: кнопок, полів, написів, прапорців, перемикачів, лічильників, списків, смуг прокручування тощо. Кнопки для їхнього встановлення на формі розташовано на окремих вкладеннях. Під час розташування цих компонентів на формі автоматично створюється відповідний фрагмент програми мовою Object Pascal, що істотно спрощує і пришвидшує роботу щодо створення програм. Такий спосіб розробки програм називають наочним (візуальним) програмуванням.

Вигляд вкладень

Standard (Стандартне)
Additional (Додаткове)
Common Controls (Загальний контроль)
Dialogs (Діалоги)
Cередовище програмування Lazarus містить велику кількість вбудованих процедур і функцій. Деякі з них є методами об’єктів, за допомогою яких можна виконувати дії з об’єктами. Для різних об’єктів передбачені різні методи, їх кількість і призначення залежать від конкретного об’єкта.

Методце фрагмент програмного коду, вбудованого в об’єкт. Метод має назву й містить набір вказівок, які буде виконано, якщо викликати метод для об’єкта. Запис вказівки для виклику методу складається з назв об’єкта та методу, розділених крапкою:

Назва об’єкта.Назва методу;


Назву методу, як і назву властивості, можна ввести з клавіатури або обрати зі списку, який відкривається, якщо в коді програми записати назву об’єкта і поставити крапку. У такому списку буде відображено всі ті методи, які можна викликати для обраного об’єкта.

Для форми найчастіше використовують такі методи:
  • Show — відбразити форму у звичайному режимі;
  • ShowModal — відобразити форму у модальному режимі;
  • Hide — зробити форму невидимою (приховати її);
  • Close — закрити форму.
Деякі методи можна викликати для різних об’єктів, а інші — лише для об’єктів певного типу. Наприклад, методи Show і Hide можна викликати для форми, напису, кнопки та інших об’єктів, а метод Close — лише для форми.

Кнопка Button на вкладенні Standard — важливий елемент інтерфейсу з широкими функціональними можливостями.
Властивості Caption (Заголовок), Color (Колір), Height (Висота) й Width (Ширина) цього компонента аналогічні властивостям форми з такими самими назвами. Але є ще інші властивості:
  • Enabled — доступність кнопки. Як усталено має значення True — кнопка доступна та виконує прописані команди;
  • ShowHint — виведення контекстної підказки. Після надання значення True можна задати текст підказки;
  • Visible — видимість кнопки. При значенні False кнопку не буде відображено на формі.
  • TabOrder — порядковий номер виділення компонентів. Визначає, в якому порядку компоненти отримають фокус введення даних при натисканні клавіші Tab. Нумерація починається з 0.
Кнопку найчастіше використовують для того, щоб під час виконання програми після натискання на неї виконати деяку послідовність вказівок. Тому з кнопкою найчастіше пов’язують подію OnClick (Клацання) і створють обробник саме цієї події.

Кнопка із зображенням BitBtn на вкладенні Additional — аналог Button. Цей компонент має свої особливі властивості:
  • Kind — тип кнопки. Є кілька визначених типів кнопки з готовою піктограмою і текстом, а також вже сформованою процедурою, зокрема:
    • bkCancel — відмінити;
    • bkClose — закрити;
    • bkIgnore — пропустити тощо;
  • Layout — місце розташування зображення на кнопці. Може мати такі значення:
    • blGlyphBottom — зображення під текстом;
    • blGlyphLeft — зображення ліворуч від текста (як усталено);
    • blGlyphRight — зображення праворуч від текста;
    • blGlyphTop — зображення над текстом;
  • Glyph — власне зображення на випадок, якщо не влаштовують запропоновані. При редагуванні після натискання кнопки з трикрапкою буде відкрито вікно діалогу, в якому потрібно вказати шлях до зображення (див. малюнок нижче).

Текстове поле введення чи виведення даних Edit зі вкладення Standard має такі основні властивості:
  • Text — текст, який буде відображено у полі на початку виконання програми;
  • CharCase — регістр виведених символів, який може мати такі значення:
    • ecLowerCase — усі літери малі;
    • ecNormal — символи такі, якими їх вводить користувач (як усталено);
    • ecUppercase — усі літери великі;
  • ReadOnly — дозвіл чи заборона введення інформації у поле;
  • MaxLength — максимальна довжина тексту (вимірюють у кількості символів);
  • HideSelection — чи буде зніматися виділення з тексту при втраті компонентом фокуса;
  • PasswordChar — символ, який буде відображено у полі замість введених символів — використовують, наприклад, для приховування пароля.

Основні події Edit:
  • onChange — будь-яка зміна відображуваного тексту.
  • onClick — натиснення на компонент.
Всі інші властивості та події аналогічні властивостям форми. При опрацюванні даних, введених у поле Edit, потрібно враховувати, що вони мають рядковий тип String.

Поле Label з вкладення Standard призначено для розміщення на формі текстового напису рядкового типу String.
Основні властивості Label:
  • Caption — текст напису;
  • Color — колір тла;
  • Font — шрифт;
  • AutoSize — автоматичне підлаштування розмірів під відображуваний текст;
  • Alignment — вирівнювання:
    • taCenter — по центру;
    • taLeftJustify — за лівим краєм;
    • taRightJustify — за правим краєм;
  • Transparent — прозорість;
  • WordWrap — дозвіл на перенесення тексту на новий рядок.
Всі події аналогічні компоненту Edit.

Підписане поле введення LabeledEdit з вкладення Additional має такі самі властивості, що й поле Edit.
Компонент Memo з вкладення Standard призначено для введення багаторядкового тексту.
Деякі його властивості подібні до властивостей поля Edit. Але є і відмінні:
  • Lines — масив рядків. Дозволяє звертатися як до всього тексту, так і до його окремих рядках. Це складена властивість, яка має свої властивості, методи і події.
  • ScrollBars — смуги прокручування. Може набувати таких значень:
    • ssNone — немає смуг прокручування;
    • ssHorizontal — горизонтальна смуга прокручування;
    • ssVertical — вертикальна смуга прокручування;
    • ssBoth — присутні і вертикальна, і горизонтальна смуги.
Крім перелічених вище властивостей, Memo має свої методи:
  • CopyToClipboard — копіювання тексту у буфер обміну;
  • CutToClipboard — вирізання виділеного тексту й поміщення його в буфер обміну;
  • PasteFromClipboard — вставляння в компонент тексту з буфера обміну у позицію, де розташовано курсор;
  • SelectAll — виділення всього тексту;
  • Undo — відміна останньої зміни у тексті.
Списки вибору ListBox і ComboBox з вкладення Standard використовують для вибору користувачем одного або декількох рядків.

ListBox — це список, схожий на Memo,
а ComboBox — список, що розгортається.

Специфічні властивості ListBox:
  • Columns — кількість стовпчиків у списку;
  • MultiSelect — дозвіл виділяти більше одного елемента списка;
  • ExtendedSelect — розширене виділення — дозвіл чи заборона виділяти діапазон з утриманням клавіші Shift. У будь-якому випадку, користувач може виділяти вибіркові рядки, клацаючи по ним по черзі і утримуючи при цьому Ctrl. Працює за умови MultiSelect = True;
  • Sorted — упорядкування списку. Якщо значення властивості True, список упорядковують за алфавітом.
Специфічні властивості ComboBox:
  • ArrowKeysTraverseList — при значенні True дозволяє переміщатися за списком кнопками зі стрілками.
  • AutoComplete — при значенні True дозволяє вибирати елементи зі списку, фільтруючи їх за введеними з клавіатури початковими символами.
  • AutoCompleteText — перемикачі автозавершення введення, які перелічують через кому у квадратних дужках:
    • cbactEnabled — включення опції AutoComplete;
    • cbactEndOfLineComplete — виконує AutoComplete лише за умови перебування вказівника в кінці рядка;
    • cbactRetainPrefixCase — зберігає ті самі символи, які ввів користувач;
    • cbactSearchAscending — при значенні True пошук відповідних рядків буде проведено у порядку зростання, при значенні False — у порядку спадання.
    • cbactSearchCaseSensitive — при значені True пошук чутливий до регістру символів (розрізняє великі та малі літери), при значенні False — ні.
Мітка CheckBox (Прапорець) з вкладення Standard призначена для того, щоб користувач міг вказати своє рішення типу так/ні або так/ні/не впевнений.
Це рішення впливає на значення властивості State. Платформа може містити кілька таких компонентів. Стан кожного з них ніяк не залежить від стану інших.

Деякі прапорці можуть перебувати у частково встановленому стані. Така можливість потрібна, коли потрібно повідомити користувачеві про неповну відповідність. Для активування такої можливості використовують властивість AllowGrayed. Якщо для властивості AllowGrayed встановлено значення True, то прапорець при послідовних клацання на ньому буде по черзі перебувати у таких станах:
    - скинутий;
    - встановлений частково;
    - встановлений.

Стан компонента визначається відповідним значенням властивості State:
    - cbUnchecked;
    - cbGrayed;
    - cbChecked.

Значення властивості State можна змінювати як під час проектування за допомогою інспектора об’єктів, так і в програмі. Щоб реагувати на зміну стану прапорця, треба створити обробник події OnClick.

Група перемикачів RadioGroup з вкладення Standardце панель з радіокнопками, з яких може бути включена тільки одна. Інакше кажучи, при включенні якоїсь кнопки всі інші вимикаються.
Основні властивості група перемикачів RadioGroup:
  • Caption — напис у лівому верхньому кутку панелі;
  • Items — написи кнопок і їхня кількість (перший елемент має порядковий номер 0);
  • Columns — кількість стовпчиків;
  • ItemIndex — номер кнопки, виділеної спочатку. Як усталено –1 — жодну кнопку не виділено.
Зображення Image з вкладення Additional відображає на формі зображення і забезпечує роботу з ним.
Основні властивості зображення Image:
  • Picture — дозвіл на завантаження зображення;
  • Proportional — пропорційна зміна зображення зі зміною розмірів компонента;
  • Stretch — зміна розмірів зображення під розміри компонента;
  • Center — центрування зображення в полі компонента;
  • Canvas — створення й редагування зображення.
Події
Кожний об'єкт (форма, кнопка, поле, напис та інші), крім набору властивостей, має ще набір подій, які можуть відбутися з об'єктом під час виконання проекту. Такими подіями, наприклад, є (перелік неповний):
  • ОnСlіск (англійською — на клацання) — вибір будь-якої точки об'єкта;
  • OnDblСlіck — подвійне клацання кнопкою миші;
  • OnMouseDown — натиснення кнопки миші;
  • OnmouseUp — відпускання кнопки миші;
  • ОnМоuseMove (англійською — на переміщення миші) — переміщення вказівника по об'єкту;
  • ОnKeyPress (англійською — на натискання клавіші) — натиснення будь-якої клавіші на клавіатурі;
  • OnКеуDown — натиснена клавіша клавіатури. Події ОnКеуDown і OnКеуDowРress — це події, що чергуються, відбуваючись до тих пір, поки не буде відпущена утримувана клавіша. У цей момент відбудеться подія ОnКеуUp;
  • ОпКеуUp — відпускання натиснутої клавіші клавіатури;
  • ОпСгеаtе — створення об'єкту. Опрацювання цієї події зазвичай використовують для ініціалізації змінних, виконання підготовчих дій;
  • ОnPaint — поява вікна на екрані на початку роботи програми, появи частини вікна, яка до цього була закрита іншим вікном;
  • ОnEnter — отримання елементом управління фокусу;
  • ОпЕхіt — втрата елементом управління фокусу.
Список всіх подій з об'єктом можна побачити, якщо виділити об'єкт і відкрити вкладення Події вікна Іспектор об'єктів — див. перелік подій для кнопки.
Примітка. У поданому вище прикладі подія ОnСlіск з кнопкою Button1 має назву Button1Сlіск. Аналогічно інтегроване середовище програмування формує назви всіх подій з усіма об'єктами за таким правилом: назва_об'єкта.назва_події.

Процедураструктурно виділена частина програми, яка має свою назву та яку можна за цією назвою викликати на виконання будь-якого місця програми.

Рекурсивна процедурапроцедура, яка містить виклик самої себе.

Структура коду процедура
procedure назва_процедури (список аргументів);
var (опис локальних змінних процедури>);
begin
     вказівки
end;
Для зміни значень властивостей аргумента, процедура повинна містити крім вказівки надання значення:

назва_об'єкта.назва_властивості := значення_або_вираз ;

ще й службове слово var перед (локальною) назвою аргумента у списку аргументів.

Обробник подійпроцедура, пов'язана з певною подією, яку програма виконуватиме одразу після настання цієї події.

Наприклад, якщо потрібно пов'язати деяку процедуру з подією OnClick для кнопки з назвою Вutton1, то необхідно зробити таке:
  1. Виділити кнопку на формі.
  2. У вікні Інспектор об'єктів відкрити вкладення Події.
  3. Вибрати подію ОnСІіск.
  4. Двічі клацнути у полі праворуч від тексту ОnСІіск.
У результаті виконання таких дій в полі ОnСlіск на вкладенні Еvents з'явиться текст Вutton1СІіск — назва створеної події,
а у вікні Редактор тексту вкладенні Unit1 з'явиться заготовка процедури Вutton1СІіск, вказівки якої й буде виконано при настанні події Вutton1СІіск — події ОnClick з кнопкою Вutton1.
Продемонструємо дію обробників подій натискання кнопок, які змінюють властивості форми й кнопок. Наступні зображення демонструють початковий вигляд форми
і такі результи натискання кнопок у початковому стані.
Зображення подано для такого порядку натискання кнопок.
1    2    3
4    5    6
7
Цей проект містить такі файли:
Вироблення практичних навичок

Завдання. Створити проект з трьома кнопками на формі. Встановити такі значення їхніх властивостей, щоб на початку виконання проекту:
  • перша кнопка була видима і доступна;
  • друга — видима і недоступна;
  • третя — невидима і недоступна.
Для кожної кнопки створіть обробник події:
  • вибір першої кнопки робить її невидимою і недоступною, другу кнопку — видимою і доступною, третю кнопку — видимою і недоступною;
  • вибір другої кнопки робить її невидимою і недоступною, третю кнопку — видимою і доступною, першу кнопку — видимою і недоступною;
  • вибір третьої кнопки робить її невидимою і недоступною, першу кнопку — видимою і доступною, другу кнопку — видимою і недоступною.
Вказівки до виконання
  1. Завантажити середовище Lazarus.
  2. Виділити форму і надати значення «Видимий — невидимий, доступний — недоступний» її властивості Caption.
  3. Розташувати на формі кнопку, виділити її і надати такі значення її властивостям:
    • Caption — Кнопка 1;
    • Visible — True;
    • Enabled — True.
  4. Розташувати на формі другу кнопку, виділити її і надати такі значення її властивостям:
    • Caption — Кнопка 2;
    • Visible — True;
    • Enabled — False.
  5. Розташувати на формі третю кнопку, виділити її і надати такі значення її властивостям:
    • Caption — Кнопка 3;
    • Visible — False;
    • Enabled — False.
  6. Виділити першу кнопку, відкрити вкладення Події вікна Інспектор Об'єктів і створити заготовку процедури для події OnClick для цієї кнопки.
  7. У тіло створеної процедури ввести такий текст:
·   Button1.Visible := False;
·   Button1.Enabled := False;
·   Button2.Visible := True;
·   Button2.Enabled := True;
·   Button3.Visible := True;
·   Button3.Enabled := False;
  1. Виділити другу кнопку, відкрити вкладення Події вікна Інспектор Об'єктів і створити заготовку процедури для події OnClick для цієї кнопки.
  2. У тіло створеної процедури ввести такий текст:
·   Button2.Visible := False;
·   Button2.Enabled := False;
·   Button3.Visible := True;
·   Button3.Enabled := True;
·   Button1.Visible := True;
·   Button1.Enabled := False;
  1. Виділити третю кнопку, відкрити вкладення Події вікна Інспектор Об'єктів і створити заготовку процедури для події OnClick для цієї кнопки.
  2. У тіло створеної процедури ввести такий текст:
·   Button3.Visible := False;
·   Button3.Enabled := False;
·   Button1.Visible := True;
·   Button1.Enabled := True;
·   Button2.Visible := True;
·   Button2.Enabled := False;
  1. У вказаному вчителем місці створити теку з назвою Ваше_прізвище і зберегти до неї проект:
    • або використати вказівку меню Файл / Зберегти все;
    • або натиснути кнопку Зберегти все на панелі інструментів;
    • або натиснути клавіші Shift + Ctrl + S.
  2. Виконати проект:
    • або використати вказівку меню Виконання / Виконати;
    • або натиснути кнопку Виконати на панелі інструментів;
    • або натиснути клавіші F9;
  3. У вікні, що відкрилося, перша кнопка має бути видимою і доступною, друга — видимою і недоступною, а третя кнопка — невидимою і недоступною.
  1. Перевірити коректність роботи обробників подій згідно з умовою завдання, натискаючи по черзі першу, другу й третю кнопки кілька разів.
  1. Повідомити вчителя про виконання завдання.
  2. Зберегти проект, закрити вікно виконання проекту і вікно програми Lazarus.

Комментариев нет:

Отправить комментарий