|
Елементи керування
Напис або мітка - Label (модуль Ctl)
Мітка - це просто якийсь текст у вікні, що ніяк не реагує на дії юзера (ну, майже ніяк :). За допомогою міток робляться підписи до інших елементів керування (полів вводу, лінійок, флажків тощо), різні пояснення, показується текст, який юзер не може редагувати. Так само, як і кнопки, політівські мітки мають досить багато різних властивостей.
Створення напису
Function Label_Create(Prog:PProg; VCaption:String; VPicture:Pointer;
VStyle:TLabelStyle; VAlign:TAlign): PControl;
- Prog - і так ясно :).
- VCaption - текст напису. До речі, текст цей може мати більше одного рядка. Наприклад, у вікна "Настройки" всі написи справа - дворядкові. Щоб зробити мітку багаторядковою, треба на межах рядків підпису повсталяти символи #13. Наприклад: 'Швидкiсть клавiатури,'+#13+'курсору, гарячi клавiшi'.
- VPicture - вказівник на картинку. Мітки теж можуть мати картинку, вона буде малюватися ліворуч від тексту. Nil - немає картинки. Напис з іконкою можна побачити у Файл-менеджері (поля із поточними шляхами зверху).
- VStyle - стиль напису: lsNormal - звичайна мітка (чорний текст), lsDisabled - "недоступна" (звичайно сірий колір), lsComment - "пояснення" (звичайно білий колір), lsBeveled - напис у рамці та на темному фоні. Написи стилю lsDisabled використовуються, коли недоступний елемент керування, до якого стосується напис. Наприклад, подивіться панель настройки клавіатури, сторінку "Гарячі клавіші". Стиль lsComment використовується для написів-пояснень у вікні Настройок. Нарешті, мітки стиль lsBeveled можна також побачити у Файл-менеджері.
- VAlign - вирівнювання тексту мітки: alLeft - по лівому краю, alCenter - по центру, alRight - по правому краю.
Малювання напису
Procedure Label_Paint(Me:PControl; VX1, VY1, VX2:Integer);
- X1, X2 - координати X лівого та правого країв напису. Якщо напис не вміститься по ширині, від буде скорочений (наприклад, "Яскр...").
- Y1 - коорд. Y верху напису. Висота написів залежить від кількості рядків (для однорядкових написів це 21 піксель), тому Y2 вказувати не треба. Зверніть увагу, що насправді напис малюється на 4 пікселі нижче вказаного Y1. Це зроблено для того, щоб було легше вертикально вирівнювати мітки з такими елементами, як кнопки, поля вводу тощо. Якщо ви робите поле вводу із підписом, просто дайте обом елементам однаковий Y1, і вони будуть ідеально вирівняні.
Змінити текст напису
Procedure Label_SetCaption(Me:PControl;
VCaption:String);
VCaption - новий текст. Раджу при цьому кількість рядків напису залишати такою, як і була.
Отримати текст напису
Function Label_GetCaption(Me:PControl): String;
Отримати картинку напису
Function Label_GetPicture(Me:PControl): Pointer;
Змінити стиль напису
Procedure Label_SetStyle(Me:PControl;
VStyle:TLabelStyle);
VStyle - новий стиль. Допускається зміна стилів лише між lsNormal, lsDisabled, lsComment. Наочний приклад зміни стилів (тобто, фактично, кольорів) написів можна побачити у вікні "Про Політ".
Зкопіювати текст напису в буфер
Procedure Label_CopyToClipboard(Me:PControl);
Як і з кнопкою, давайте зробимо програмку-приклад для напису. Пропоную взяти попередню програмку TestBtn та додати туди напис, яким ми будемо керувати за допомогою кнопки. Заводимо ще змінну:
LabTest: PControl;
Створюємо напис, відразу після створення кнопки:
LabTest:=Ctl.Label_Create(Me, 'Windows', Nil, lsBeveled, alCenter);
Малюємо його (після малювання кнопки):
Ctl.Label_Paint(LabTest, 10, 40, 100);
І обробник кліку на кнопці замінюємо на такий:
Procedure OnBtnTestClick(Me:PProg; Control:PControl);
Begin
With Me^, TTestBtnData(Data^) Do
If Ctl.Label_GetCaption(LabTest)='Windows'
Then Ctl.Label_SetCaption(LabTest, 'mustdie')
Else Ctl.Label_SetCaption(LabTest, 'Windows')
End;
Майже повна аналогія з керуванням кнопкою, бачите? Можна запускати.
| |