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

Лекція №8

Тема 3. Компоненти бібліотеки C++Builder (продовження)

План

  1. Кнопки, прапорці та елементи управління – загальна характеристика.

  2. Кнопки управління Button і BitBtn.

  3. Кнопка з фіксацією SpeedButton.

  4. Групи радіокнопок — компоненти RadioGroup, RadioButton і GroupBox.

  5. Прапорці CheckBox і CheckListBox.

  6. Повзунки і смуги прокрутки — компоненти TrackBar і ScrollBars.

  7. Таймер — компонент Timer

  1. Кнопки, прапорці та елементи управління – загальна характеристика

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

Button (Standard) - використовується для створення кнопок, за допомогою яких користувач виконує команди.

BitBtn (Additional) - використовується для створення кнопок, на яких розташовується бітова графіка (наприклад, кнопка ОК з галочкою).

SpeedButton (Additional) - використовується для створення інструментальних панелей, кнопок з фіксацією натиснутого стану і як швидкі кнопки, дублюючі команди меню.

RadioButton (Standard) - пропонують користувачу набір альтернатив, з якого вибирається тільки одна. Набір реалізується необхідною кількістю радіокнопок, розміщених в одному контейнері (формі, панелі і т.п.).

RadioGroup (Standard) - є комбінацією групового вікна GroupBox з набором радіокнопок RadioButton. Служить спеціально для створення груп радіокнопок. Можна розміщувати в компоненті декілька радіокнопок, але інші органи управління не дозволені.

GroupBox (Standard) - є контейнером, що об’єднує групу зв'язаних елементів управління, таких, як радіокнопки RadioButton, прапорці CheckВox і т.д.

CheckBox (Standard) - дозволяє користувачу включати і вимикати опції програми.

CheckListBox (Additional) - компонент є комбінацією списку ListBox і індикаторів CheckBox в одному компоненті.

ТгаскВаr (System) - використовується як елемент управління у вигляді повзунка.

Scrollbar (Standard) - є стандартною лінійкою прокрутки Windows і служить для управління положенням видимої частини форм або компонентів.

Timer (Win32) - використовується для запуску процедур, функцій і подій у вказані інтервали часу.

Перш, ніж переходити до опису окремих елементів управління, слід сказати про одну властивість, що є у більшості з них — властивості Action. Це посилання на деяку дію, введену тим або іншим диспетчером дій, наявним C++Builder. Посилання на цю дію замінює установку для даного елементу безліч властивостей і написання для нього обробника події. Всі ці властивості і обробник успадковуються елементом від тієї дії, на яку ви послалися у властивості Action.

2. Кнопки управління Button і BitBtn

Простою і, мабуть, найбільш часто використовуваною кнопкою є кнопка Button, розташована на сторінці бібліотеки Stаndard. Рідше використовується кнопка BitBtn, що відрізняється, перш за все, можливістю відобразити на її поверхні зображення. Більшість властивостей, методів і подій у цих видів кнопок однакова.

Основна з погляду зовнішнього вигляду властивість кнопки — Caption (напис). У написах кнопок можна передбачати використання клавіш прискореного доступу, виділяючи для цього один з символів напису. Перед символом, який повинен відповідати клавіші прискореного доступу, ставиться символ амперсанд "&". Цей символ не з'являється в написі, а наступний за ним символ виявляється підкресленим. Тоді користувач може замість клацання на кнопці натиснути у будь-який момент клавішу Ait спільно з клавішею виділеного символу.

Наприклад, якщо у вашій програмі є кнопка виконання якоїсь операції, ви можете задати її властивість Caption рівним «&Виконати». На кнопці цей напис матиме вигляд «Виконати». І якщо користувач натисне клавіші Alt-B, то це буде еквівалентне клацанню на кнопці.

Основна подія будь-якої кнопки — OnClick, що виникає при клацанні на ній. Саме в обробнику цієї події записуються оператори, які повинні виконуватися при клацанні користувача на кнопці.

Властивість Cancel, якщо встановити його в true, визначає, що натиснення користувачем клавіші Esc буде еквівалентне клацанню на даній кнопці. Цю властивість доцільно задавати рівним true для кнопок Відмінити в різних діалогових вікнах, щоб можна було вийти з діалогу, натиснувши на цю кнопку або натиснувши клавішу Esc.

Властивість Default, якщо ії встановити в true, визначає, що натиснення користувачем клавіші введення Enter буде еквівалентне натисненню на дану кнопку, навіть якщо дана кнопка у цей момент не знаходиться у фокусі. Правда, це спрацює, якщо у фокусі знаходиться якийсь віконний компонент. Якщо ж у момент натиснення Enter у фокусі знаходиться інша кнопка, то все-таки спрацює саме кнопка у фокусі. Якщо у декількох кнопок на формі властивість Default задана рівною true, то при натисненні Enter спрацює та з них, яка має менший індекс в послідовності табуляції.

Ще одна властивість — ModalResult використовується в модальних формах. У звичайних програмах значення цієї властивості повинне бути рівне mrNone.

З методів, властивих кнопкам, має сенс відзначити один — Click. Виконання цього методу еквівалентно клацанню на кнопці, тобто викликає подію кнопки

Цим можна скористатися, щоб продублювати якісь інші дії користувача клацанням на кнопці. Наприклад, ви хочете, щоб при натискання клавіші з символом "С" або "с" у будь-який момент виконувалися операції, передбачені в обробнику події OnClick кнопки Button1, Оскільки невідомо, який компонент буде знаходитися у фокусі у момент цієї події, треба перехопити його на рівні форми. Таке перехоплення здійснюється, якщо встановити властивість форми KeyPreview у true. Тоді в обробнику події форми OnKeyPresss можна написати оператор: if ((Кеу==’C’)||(Кеу==’с’)) Button1->Click();

Якщо користувач ввів символ "С" або "с", то в результаті буде виконаний обробник клацання кнопки Button1.

Все сказане вище в рівній мірі відноситься і до Button, і до BitBtn. Розглянемо тепер особливості кнопки з піктограмою BitBtn. Зображення на цій кнопці задається властивістю Glyph. При натисненні кнопки з багатокрапкою в рядку властивості Glyph, для якої в Інспекторі Об'єктів викликається вікно налаштування зображення. Натиснувши в ньому кнопку Load, ви перейдете в звичайне вікно відкриття файлу малюнка і можете вибрати файл бітової матриці .bmp, що містить бажане зображення. Зокрема, з C++Builder поставляється велика кількість зображень для кнопок. Вони розташовані в каталозі в C++Builder звичайно розташований в каталозі ...\ProgramFiles\Common Files\Borland\Barland Shared\Images\Buttons.

Файл зображення для кнопки може містити до чотирьох зображень піктограм розміру 16х16. Най лівіше - відповідає віджатій кнопці. Друге зліва відповідає недоступній кнопці, коли її властивість Enabled дорівнює false. Третє зліва зображення використовується при натисненні на кнопку при її включенні. Четверте зліва зображення використовується в кнопках з фіксацією SpeedButton, про яких буде сказано пізніше, для зображення кнопки в натиснутому стані. Більшість зображень для кнопок використовують дві піктограми. Число піктограм ви можете дізнатися з властивості кнопки NumGlyphs, яка після завантаження зображення покаже вам число піктограм в ньому.

Розташування зображення і напису на кнопці визначається властивостями Margin, Layout і Spacing. Якщо властивість Margin рівна -1 (значення за умовчанням), то зображення і напис розміщуються в центрі кнопки. При цьому положення зображення по відношенню до напису визначається властивістю Layout, яка може приймати значення: blGlyphLeft (зліва, це значення прийняте за умовчанням), blGlyphRight (справа), blGlyphTop (вгорі), blGlyphBottom (внизу). Якщо ж Margin > 0, то залежно від значення Layout зображення і напис зміщуються до тієї або іншої кромки кнопки, відступаючи від неї на число пікселів, задане значенням Margin.

Властивість Spacing задає число пікселів, що розділяють зображення і напис на поверхні кнопки. За умовчанням Spacing = 4. Якщо задати Spacing = 0 то, зображення і напис будуть розміщені впритул один до одного. Якщо задати Spacing = -1, то текст з'явиться посередині між зображенням і краєм кнопки.

Ще одна властивість BitBtn — властивість Kind визначає тип кнопки. За умовчанням значення цієї властивості рівне bkCustom — за вибором. Але можна встановити інші типи: bkOK, bkCancel, bkHelp, bkYes, bkNo, bkClose, bkAbort, bkRetry, bkІgnore, bkAll. У цих типах вже зроблені відповідні написи, введені піктограми, задані ще деякі властивості. Звичайно все-таки краще ними не користуватися. По-перше, напис все одно треба перекладати українською мовою. По-друге, зумовлені малюнки звичайно відрізняються із загального стилю конкретної програми. І головне — визначення деяких властивостей, не врахованих вами, може іноді приводити до дивних результатів роботи. Вже краще використовувати стандартні кнопки і самому встановлювати в них всі необхідні властивості.

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