Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Л5.doc
Скачиваний:
13
Добавлен:
30.10.2018
Размер:
208.38 Кб
Скачать

2. Відображення тексту із використанням компонентів Label, StaticText, Panel

Для відображення різних написів на формі використовуються в основному компоненти Label, StaticText і Panel. Перші два з цих компонентів — мітки, спеціально призначені для відображення текстів. Основне призначення панелі Panel інше: компоновка компонентів у вікні форми. Проте панель можна використовувати і для виведення текстів.

Тексти, що відображаються в перерахованих компонентах, визначаються значенням їх властивості Caption. Її можна встановлювати в процесі проектування або задавати і змінювати програмно під час виконання застосування. Наприклад:

Label1 -> Caption = "Новий текст";

Властивість Caption має тип рядка AnsiString. При привласненні цьому типу числової інформації відбувається її автоматичне перетворення в рядок. Тому ви можете безпосередньо здійснювати подібні привласнення. Наприклад, оператор:

Labell->Caption = 5.1;

приведе до появи в мітці напису «5,1». Але якщо ви хочете занести в мітку змішану інформацію, що складається з рядків символів і чисел, ви повинні скористатися функціями FloatToStr і IntToStr, що переводять відповідно числа з плаваючою комою і цілі в рядок. Для формування тексту, що складається з декількох фрагментів, можна використовувати операцію "+", яка для рядків означає їх склеювання (конкатенацію). Наприклад, якщо в програмі є ціла змінна I, що відображає число співробітників деякої організації, то вивести в мітку Label1 інформацію про це можна оператором:

Label1->Caption = "Число співробітників: "+ІntToStr(I);

У всіх компонентах колір фону визначається властивістю Color, а колір напису — підвластивістю Color властивості Font. Якщо колір спеціально не задавати, то колір фону звичайно зливається з кольором контейнера, що містить мітку, так що фон просто не помітний.

Для мітки Label колір і шрифт — єдино доступні елементи оформлення напису. Компоненти StaticText і Panel мають крім того властивість BorderStyle, що визначає рамку тексту. При стилі sbsNone мітка StaticText по вигляду не відрізняється від мітки Label. Ймовірно, якщо вже використовувати рамку, то найбільш приємний стиль sbsSunken.

Компонент Panel окрім властивості BorderStyle має ще властивості BevelInner, BevelOuter, BevelWidth, BorderWidth, які надають різноманітні можливості оформлення напису. Таким чином, з погляду оформлення тексту, що виводиться, максимальні можливості дає Panel і мінімальні — Label.

Розміщення всіх даних компонентів на формі визначається, зокрема, властивостями Top, Left, Height, Width, Aline, загальними для всіх віконних компонентів. Ці властивості, що визначають координати компоненту, його розміри і їх зміну при зміні користувачем розмірів батьківського компоненту.

Розмір міток Label і StaticText визначається також властивістю AutoSize. Якщо ця властивість встановлена в true, то вертикальний і горизонтальний розміри компоненту визначаються розміром написи. Якщо ж AutoSize рівне false, то вирівнювання тексту усередині компоненту визначається властивістю Alignment, яка дозволяє вирівнювати текст по лівому краю, правому краю або центру клієнтської області мітки. У панелі Panel також є властивість AutoSize, але воно не відноситься до розмірів напису Caption. Проте властивість вирівнювання Alignment працює і для панелі.

У мітці Label є властивість Wordwrap — допустимість перенесення слів довгого напису, що перевищує довжину компоненту, на нову строчку. Щоб таке перенесення могло здійснюватися, треба встановити властивість Wordwrap в true, властивість AutoSize в false (щоб розмір компоненту не визначався розміром напису) і зробити висоту компоненту такою, щоб в ньому могло поміститися декілька рядків. Якщо Wordwrap не встановлене в true при AutoSize рівному false, то довгий текст, що не поміщається в рамці мітки, просто обрізається.

У мітці StaticText перенесення довгого тексту здійснюється автоматично, якщо значення AutoSize встановлене в false і розмірі компоненту достатній для розміщення декількох рядків. Для того, щоб в StaticText здійснювалося перенесення при зміні користувачем розмірів вікна, треба здійснювати описане вище перемальовування компоненту методом Repaint в обробнику події форми OnResize.

У панелі розміщення напису в декількох рядках неможливе.

Можна відзначити ще одну властивість міток Label і StaticText, що перетворює їх на деяку подібність елементів, що управляють. Ця властивість FocusControl — сфокусований компонент. Якщо у властивості мітки Caption помістити перед одним з символів символ амперсанд "&", то символ, перед яким поставлений амперсанд, відображається в написі мітки підкресленим (сам амперсанд взагалі не відображається). Якщо після цього звернутися до властивості мітки FocusControl, то з випадного списку можна вибрати елемент, на який перемикатиметься фокус, якщо користувач натисне клавіші прискореного доступу: клавішу Alt + підкреслений символ. Подібні клавіші прискореного доступу передбачені в елементах, що управляють: розділах меню і кнопках. Завдяки властивості FocusControl мітки можуть забезпечити клавішами прискореного доступу інші елементи, наприклад, вікна редагування, в яких такі клавіші не передбачені. Тільки для того, щоб клавіші прискореного доступу в мітках спрацьовували, необхідно встановити властивість ShowAccelChar цих міток в true.

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