asyan.org
добавить свой файл
1




Лекція 8. Огляд візуальних компонент Delphi.

Текстові редактори

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

Компонента Edit дозволяє вводити і редагувати з клавіатури різні символи, при цьому підтримувати операції переміщення по рядку з використанням клавіш керування курсором, видалення символів за допомогою клавіш Backspace та Delete, виділення частини тексту і т.д. Однак у однорядкового редактора не існує реакції на керуючі клавіші Enter та Esc.

Компонента MaskEdit також є однорядковим редактором, але у порівнянні з компонентою Edit вона додатково дає можливість введення за шаблоном. За допомогою шаблону (маски) можна обмежувати кількість введених символів, тип введених символів. За допомогою редагування за шаблоном зручно вводити телефонні номери, дати, поштові індекси та іншу інформацію наперед заданого формату.

Компонента LabelEdit представляє собою однорядковий редактор з написом, і на відміну від звичайного редактора Edit, додатково має три властивості, які керують написом: EditLabel, LabelPosition і LabelSpacing.

Для роботи з багаторядковим текстом Delphi представляє компоненту ^ Memo. Багаторядковий редактор містить декілька рядків тексту.

Для доступу до усього вмістимого багаторядкового редактора використовується властивість Text типу String. Для роботи з окремими рядками використовується властивість Lines типу TStrings.

Вмістиме компоненти Memo можна завантажувати з текстового файлу і зберігати в текстовому файлі. Для цього зручно використовувати методи LoadFromFile(const FileName:String) та SaveToFile(const FileName:String) класу TStrings. Параметр FileName визначає текстовий файл для операцій читання та запису.

Приклад читання інформації з текстового файлу у компоненту Memo1:

Memo1.Lines.LoadFromFile(‘D:\Student\KN3\example1.txt);

і запису інформації з компоненти Memo2 у текстовий файл:

Memo2.Lines.SaveToFile(‘D:\Student\KN3\example2.txt);

Багаторядковий редактор RichEdit є компонентою редагування з форматуванням тексту і на додаток до Memo підтримує такі операції форматування, як вирівнювання та табуляція тексту, застосування відступів та ін. Текст, що міститься у цьому елементі, є сумісним з форматом RTF (Rich Text Format), який підтримується багатьма текстовими процесорами у середовищі Windows.

^ Кнопки

Компонента Button.

Компонента BitBtn.

Компонента SpeedButton.

Списки

Список класу TList.

Список класу TString.

Список класу TStringList.

Компоненти класу TListBox.

Компоненти класу TCheckListBox.

Елементи керування з кількома станами

Перемикачі класів TCheckBox та TRadioButton.

Панель перемикачів TRadioGroup.

Елементи групування

Компонента GroupBox.

Компонента Panel.

Компонента ScrollBox.

Реверсивні лічильники

Реверсивний рахунок – це збільшення чи зменшення числового значення на задану величину (приріст). Для організації такого обрахунку в Delphi призначені компоненти UpDown (розміщена на сторінці Win32 Палітри компонент), SpinButton та SpinEdit (розміщена на сторінці Samples Палітри компонент), які є подібними і мають багато спільних характеристик. Усі ці компоненти є лічильниками і мають дві кнопки зі стрілками, які використовуються для збільшення чи зменшення значення лічильника.

^ Лічильник UpDown існує як автономний елемент керування і не має поля, в якому відображається змінне число; однак, як правило, він пов’язаний з іншим віконним елементом керування, найчастіше з однорядковим редактором Edit або статичним текстом StaticText.

Лічильник та асоційований з ним елемент взаємно доповнюють один одного і утворюють парний реверсивний елемент керування: поле містить число, а лічильник служить для збільшення чи зменшення числа. Лічильник UpDown автоматично розміщується поруч зі своєю компонентою-”партнером”. Реверсивний елемент керування не має заголовка, тому якщо треба пояснити призначення лічильника, біля нього розміщується напис.

Підключення лічильника UpDown до асоційованої компоненти виконується за допомогою властивості Associate. Наприклад, зв’язок лічильника з елементом редагування можна задати так: UpDown1.Associate:=Edit1.

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

Числовий діапазон значення, який керується лічильником, задається властивостями Min та Max типу SmallInt.

Крок зміни значення реверсивного елементу міститься у властивості Increment типу Integer.По замовчуванню це значення рівне одиниці. Його можна змінювати програмно.

Крім миші, керувати лічильником можна клавіатурою за допомогою клавіш керування курсором. Ця можливість залежить від властивості ArrowKeys типу Boolean, яка по замовчуванню має значення True.

Поточну позцію реверсивного елементу визначає значення властивості Position типу SmallInt.

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

^ Лічильник SpinButton являє собою дві кнопки зі стрілками. Він більш простіший від лічильника UpDown, оскільки не містить вказівника поточної позиції Position і таких властивостей як Min, Max або Increment. При застосуванні компоненти SpinButton програміст сам керує розміщенням числа та зміною його значення.

Як правило, для збереження числа об’являється глобальна змінна, а зміна її значення виконують обробники подій натиснення кнопок. При необхідності значення змінної можна відобразити за допомогою візуальної компоненти, наприклад, напису Label. При натисненні кнопок компоненти SpinButton генерується не одна загальна подія, наприклад, , як з попереднім лічильником, а по одній окремій події для кожної кнопки – OnUpClick і OnDownClick.

Лічильник SpinEdit за зовнішнім виглядом і функціональним можливостям поєднує в собі лічильник UpDown і асоційовану з ним компоненту Edit. Відповідно поведінка компоненти SpinEdit та її характеристики є аналогами поведінки і характеристик лічильника UpDown. Найбільш характерними для елементу SpinEdit є властивості Vаlue, MinValue, MaxValue, Increment та подія OnChange.