Главная страница
Навигация по странице:

  • ІІІ. Виклад нового матеріалу План лекції

  • V. Підведення підсумків заняття. І. Домашнє завдання

  • Bevel Additional Використовується для малювання прямокутної рамки, зображеної як виступає або втоплена. ScrollBox

  • Splitter Additional Використовується для створення в додатку панелей із змінними користувачем розмірами. ControlBar

  • TabControl Win32 Дозволяє додавати закладки в стилі Windows 95/98, які може вибирати користувач. PageControl

  • StatusBar Win32 Смуга стані додатки, при необхідності - на кількох панелях. ToolBar

  • CoolBar Win32 Контейнер інструментальної панелі, розміри якої можуть змінюватися користувачем. PageScroller

  • TabSet

  • NoteBook

  • Лекція №1.2.3 Тема Робота з компонентами разрядного інтерфейсаМета

  • Лекції_1_ІЗВП. Коледж промислової автоматики та інформаційних технологій


    Скачать 1.63 Mb.
    НазваниеКоледж промислової автоматики та інформаційних технологій
    Дата07.09.2021
    Размер1.63 Mb.
    Формат файлаpdf
    Имя файлаЛекції_1_ІЗВП.pdf
    ТипРобоча програма
    #230328
    страница3 из 7
    1   2   3   4   5   6   7
    Лекція №1.2.2 Тема Кнопки та текстові надписи. Компоненти - контейнери Мета вивчити основні компоненти,що стосуються контейнерів та текстових записів, розгледіти їх основні властивості; ознайомитися з різновидами кнопок та їх властивостями
    Література
    1.Б.Страуструп Программирование. Принципы и практика с использованием C++» Вильямс 2016 2. Стивен Прата Язык программирования С Вильямс 2013 3. Алекс Элайн От ламера до программера С Питер 2015
    Хід заняття І. Організаційний момента) готовність групи до заняття; б) психоемоційний настрій; в) перевірка присутніх.
    ІІ. Актуалізація опорних знань студентів а) повідомлення теми та мети заняття; б) відповіді на запитання:
    - Що таке бібліотека VCL ?
    - Які класи входять до бібліотеки VCL?
    - Які загальні властивості візуальних компонентів вам відомі?
    ІІІ. Виклад нового матеріалу План лекції
    1. Компонент Button та його властивості
    2. Компонент BitBtn та його властивості
    3. Компонент SpeedButton та його властивості
    4. Різновиди текстових міток
    5. Компонети- контейнери І. Узагальнення та систематизація знань.

    V. Підведення підсумків заняття. І. Домашнє завдання:

    Ознайомитись з теоретичними відомостями лекції 1.2.2

    33

    Вивчити основні поняття лекції

    Дати відповіді на контролдьні питання
    Контрольні питання:
    1. Де розташована кнопка Button ?
    2. Які властивості є у кнопки Button ?
    3. У чому полягає різниця між Button та BitBtn ?
    4. За що відповідає властивість Kind кнопки BitBtn?
    5. Які властивості має кнопка SpeedButton?
    6. Які є текстові мітки?
    7. Чому не завжди можна використовувати компонент StaticText?
    8. У чому призначення компонентів- контейнерів?
    Зміст лекції
    Найпростішою і, мабуть, найбільш часто використовуваною кнопкою є кнопка Button, розташована на сторінці бібліотеки Standard. Рідше використовується кнопка BitBtn , знана, перш за все, можливістю відобразити на її поверхні зображення. Більшість властивостей, методів і подій у цих видів кнопок однакові.
    Основне з точки зору зовнішнього вигляду властивість кнопки - Caption
    (напис). У написах кнопок можна передбачати використання клавіш прискореного доступу, виділяючи для цього один із символів напису. Перед символом, який повинен відповідати клавіші прискореного доступу, ставиться символ амперсанта
    «&». Цей символ не з'являється в написі, а наступний за ним символ виявляється підкресленим. Тоді користувач може замість клацання на кнопці натиснути в будь- який момент клавішу Alt спільно з клавішею виділеного символу.
    Наприклад, якщо у вашому додатку є кнопка виконання якоїсь операції, ви можете задати її властивість Caption рівним «& Виконати». На кнопці цей напис буде мати вигляд «Виконати». І якщо користувач натисне клавіші В, то це буде еквівалентно клацанню на кнопці.
    Основна подія будь-якої кнопки - OnClick, що виникає при клацанні на ній.
    Саме в обробнику цієї події записуються оператори, які повинні виконуватися при натисканні користувача на кнопці. Крім цього є ще ряд подій, пов'язаних з різними маніпуляціями клавішами і кнопками миші.

    34
    Властивість Cancel, якщо його встановити в true, визначає, що натискання користувачем клавіші Esc буде еквівалентно натисканню на дану кнопку. Це властивість доцільно задавати рівним true для кнопок «Скасувати» в різних діалогових вікнах, щоб можна було вийти з діалогу, клікнувши на цю кнопку або натиснувши клавішу Esc.
    Властивість Default, якщо його встановити в true, визначає, що натискання користувачем клавіші введення Enter буде еквівалентно натисканню на дану кнопку, навіть якщо дана кнопка в цей момент не знаходиться у фокусі. Правда, якщо в момент натискання Enter у фокусі знаходиться інша кнопка, то все-таки спрацює саме кнопка у фокусі.
    Ще одна властивість - ModalResult використовується в модальних формах, розгляд яких виходить за рамки даної книги. У звичайних додатках значення цієї властивості має дорівнювати mrNone. З методів, властивих кнопкам, має сенс відзначити один - Click. Виконання цього методу еквівалентно клацанню на кнопці, тобто викликає подія кнопки
    OnClick. Цим можна скористатися, щоб продублювати якимись іншими діями користувача клацання на кнопці. Нехай, наприклад, ви хочете, щоб при натисканні користувачем клавіші з символом Сабо з в будь-який момент роботи з додатком виконувалися операції, передбачені в обробнику події OnClick кнопки
    Button1. Оскільки невідомо, який компонент буде знаходитися в фокусі в момент цієї події, треба перехопити його на рівні форми. Такий перехоплення здійснюється, якщо встановити властивість форми KeyPreview в true. Тоді в обробнику події форми OnKeyPress можна написати оператор if (key = 'C' or key = 'c') then Button1.Click;
    Якщо користувач ввів символ Сабо з, тов результаті буде виконаний обробник клацання кнопки Button1. Все сказане вище в рівній мірі відноситься і до Button, і до BitBtn.
    Розглянемо тепер особливості кнопки з піктограмою BitBtn. Зображення на цій кнопці задається властивістю Glyph. При натисканні кнопки з трьома крапками в рядку властивості Glyph в Інспектора Об'єктів викликається вікно. Натиснувши в ньому кнопку Load ви перейдете в звичайне вікно відкриття файлу малюнка і можете вибрати файл бітової матриці. Bmp, що містить бажане зображення.

    35
    Зокрема, з C++ Builder поставляється велика кількість зображень для кнопок. Вони розташовані в каталозі \ Images \ Buttons, асам каталог Images в C++ Builder 5 і 4 розташований в каталозі \ program files \ common files \ borland shared, а в інших версіях C++ Builder - в каталозі \ program files \ borland \ C++ Builder ... .
    Після того, як ви вибрали зображення, натисніть OK та вибране зображення з'явиться на вашій кнопці лівіше написи. Файл зображення для кнопки може містити до чотирьох зображень піктограм розміру 16x16. Самое ліве відповідає віджатою кнопці. Друге зліва відповідає недоступною кнопці, коли її властивість Enabled одно false. Третє зліва зображення використовується при натисканні користувача на кнопку при її включенні. Четверте зліва зображення використовується в кнопках з фіксацією
    SpeedButton, про які буде сказано пізніше, для зображення кнопки в натиснутому стані. Більшість зображень для кнопок використовує дві піктограми. Число піктограм ви можете дізнатися з властивості кнопки NumGlyphs, яке після завантаження зображення покаже вам число піктограм в ньому.
    Розташування зображення і написи на кнопці визначається властивостями
    Margin, Layout і Spacing. Якщо властивість Margin дорівнює -1 (значення за замовчуванням), то зображення і напис розміщуються в центрі кнопки. При цьому положення зображення але відношенню до напису визначається властивістю
    Layout, яке може приймати значення: blGlyphLeft (зліва, це значення прийнято за замовчуванням), blGlyphRight (праворуч), Тор (угорі), blGlyphBottom внизу. Якщо ж Margin> 0, тов залежності від значення Layout образ і напис

    36 зміщуються до тієї чи іншої кромці кнопки, відступаючи від неї на число пікселів, заданий значенням Margin.
    Властивість Spacing задає число пікселів, що розділяють зображення і напис на поверхні кнопки. За замовчуванням Spacing = 4. Якщо задати Spacing = 0, зображення і напис будуть розміщені впритул один до одного. Якщо задати Spacing
    = -1, то текст з'явиться посередині між зображенням і краєм кнопки.
    Ще одна властивість BitBtn - властивість Kind визначає тип кнопки. За умовчанням значення цієї властивості дорівнює bkCustom - замовна. Але можна встановити і безліч інших визначених типів: bkOK, bkCancel, bkHelp, bkYes, bkNo, bkClose, bkAbort, bkRetry, bkIgnore, bkAll. У цих типах вже зроблені відповідні написи, введені піктограми, задані ще деякі властивості. Зазвичай все-таки краще ними не користуватися. По-перше, написи все одно треба переводити на російську мову. Подруге, зумовлені малюнки зазвичай вибиваються із загального стилю конкретного додатка. І головне - приречення деяких властивостей, не врахованих вами, може іноді приводити до дивних результатів роботи. Вже краще використати замовлені кнопки і самому встановлювати в них всі необхідні властивості.
    Компонент C++ Builder SpeedButton (швидка кнопка) розташований на сторінці Additional Палітри компонентів. Він по функціоналу і вигляду схожий на кнопку з малюнком BitBtn. Але є не віконним елементом, в слідстві чого не може отримати фокус введення. Використовується для створення панелей з "швидкими" командними кнопками.
    На даній кнопці може розташовуватися малюнок (піктограму). Для його установки потрібно подвійним клацанням навпроти властивості Glyph в інспектора об'єктів зайти в редактор малюнків і завантажити картинку у форматі bmp. Великий набір малюнків для кнопок поставляється разом звони зберігаються при установці в каталозі \ Program Files \ Common Files \ Borland
    Shared \ Images \ Buttons.
    У порівнянні з кнопкою BitBtn мається ще один стан, коли кнопка натиснута, відповідно малюнок на поверхні кнопки SpeedButton може мати чотири, а не три картинки. Четверта картинка буде видно, коли кнопка перебувати у вибраному
    (утопленому) стані (властивість Down одно TRUE).

    37
    Зазвичай "швидкі" командні кнопки використовуються групами. Для об'єднання таких кнопок у групу, необхідно встановити ненульове ціле значення для властивості GroupIndex. Кнопки у яких ця властивість однакове будуть належати до однієї групи.
    Всі кнопки в групі працюють злагоджено - при натисканні на яку кнопку в групі вибір інших кнопок буде скасовано. Групування кнопок дозволяє обійтися без програмної організації взаємодії кнопок між собою.
    Щоб кнопку повернути в зворотне стан повторним клацанням, властивість
    AllowAllUp необхідно встановити в TRUE. Якщо ми хочемо перевести кнопку в натисканні стан при проектуванні потрібно з властивості Down привласнити значення TRUE.
    Властивість Flat зі значенням TRUE формує плоский вигляд кнопки, кордони якої видно при наведенні на неї миші. Кнопка SpeedButton, увідмінності від інших кнопок може виконувати функції перемикача. Використовуючи четвертий стан вибору кнопки, коли кнопка втоплена. Для прикладу подивіться на панель форматування добре нам відомого редактора Word.
    Підсумок: був розглянутий компонент SpeedButton його властивості, призначення в додатку. На цьому уроці вивчимо об'єкт Label. Цей компонент використовується для відображення різних написів на формах. Іконка для нього знаходиться на панелі
    Standard палітри компонентів.
    Основна властивість для цього компонента - Caption. Саме воно і відповідає за напис на нашому компоненті.
    Ви можете задавати різні характеристики шрифту для нашого компонента
    (властивість Font). Для цього натисніть кнопочку з трьома крапками в рядку з властивістю Font інспектора об'єктів. Зокрема, напис можна зробити підкресленою і синьою - як гіперпосилання. У компонента TLabel є властивість AutoSize, яке відповідає за течи буде компонент автоматично змінювати розмір по горизонталі зі зміною довжини написи. За замовчуванням ця властивість одно true. Ще є властивість WordWrap.
    Якщо встановити значення це властивості в true, а значення властивості AutoSize в

    38 false, то при збільшенні довжини написи відбувається перенесення слів на нову сходинку. Для компонента TLabel є ще одне неочевидне застосування, а саме його можна використовувати для отримання доступу по гарячих клавішах (комбінації типу Alt + W) до елементів, які не мають властивості Caption. Розглянемо, наприклад, як можна за допомогою label отримати доступ до Edit (полю для введення). Для цього розташуйте на формі label і edit, залишивши їх імена за замовчуванням. Змініть властивість Caption для Label1 в & Wrap. Властивість же
    FocusControl для компонента Label1 встановіть в Edit1. Компілюйте проект і натискайте Alt + W. Поле для редагування Edit1 отримає фокус.
    Розмір міток 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. В панелі розміщення напису в декількох рядках неможливо.

    39
    Можна відзначити ще одну властивість міток Label і StaticText, що перетворює їх у деяку подобу керуючих елементів. Це властивість FocusControl - фокусованої компонент. Якщо у властивості мітки Caption помістити перед одним
    із символів символ амперсант «&», то символ, перед яким поставлено амперсант, відображається в написі мітки підкресленим (сам амперсант взагалі не відображається). Якщо після цього звернутися до властивості мітки FocusControl, то з випадаючого списку можна вибрати елемент, на який буде перемикатися фокус, якщо користувач натисне клавіші прискореного доступу клавішу Alt + підкреслений символ. Подібні клавіші прискореного доступу передбачені в керуючих елементах: розділах меню і кнопках . Завдяки властивості FocusControl мітки можуть забезпечити клавішами прискореного доступу інші елементи, наприклад, вікна редагування , в яких такі клавіші не передбачені. Тільки для того, щоб клавіші прискореного доступу в мітках спрацьовували, необхідно встановити властивість ShowAccelChar цих міток в true. Для відображення текстової інформації, і навіть з додатковою можливістю прокрутки довгих текстів, можна використовувати також вікна редагування Edit і
    MaskEdit в режимі Readonly.
    Панелі є контейнерами, службовцями для об'єднання інших керуючих елементів. Вони можуть виконувати як чисто декоративні функції, зорово об'єднуючи компоненти, пов'язані один з одним за призначенням, так і функції управління, організовуючи спільну роботу своїх дочірніх компонентів. Прикладом цього була розглянута в розділі 5.4 організація роботи групи радіокнопок. У таблиці наведено перелік панелей, обслуговуючих їх компонентів та компонентів зовнішнього оформлення, включених в бібліотеку C++ Builder 5.
    Панелі та обслуговуючі їх компоненти Пиктограмма Компонент Страница Описание
    GroupBox
    (Групове вікно)
    Standard Є контейнером, що об'єднує групу пов'язаних органів управління, таких, як радиокнопки RadioButton, контрольні індикатори
    Checkbox і т.д.

    40 Пиктограмма Компонент Страница Описание
    Panel
    Standard Є контейнером для групування органів управління і менших контейнерів. Панель можна використовувати також для побудови смуг стану,
    інструментальних панелей, панелей інструментів.
    Bevel
    Additional
    Використовується для малювання прямокутної рамки, зображеної як виступає або втоплена.
    ScrollBox
    Additional
    Використовується для створення зон відображення з прокруткою.
    Splitter
    Additional
    Використовується для створення в додатку панелей із змінними користувачем розмірами.
    ControlBar
    Additional
    Використовується для розміщення компонентів
    інструментальної панелі.
    TabControl
    Win32
    Дозволяє додавати закладки в стилі Windows 95/98, які може вибирати користувач.
    PageControl
    Win32
    Дозволяє створювати сторінки в стилі Windows 95/98, керовані закладками чи
    іншими органами управління, для економії місця на робочому столі.
    StatusBar
    Win32
    Смуга стані додатки, при необхідності - на кількох панелях.
    ToolBar
    Win32
    Інструментальна панель для швидкого доступу до часто використовуваних функцій

    41 Пиктограмма Компонент Страница Описание програми.
    CoolBar
    Win32 Контейнер інструментальної панелі, розміри якої можуть змінюватися користувачем.
    PageScroller прокрутка страниц)
    Win32
    Забезпечує прокручування великих вікон, наприклад,
    інструментальних панелей.
    TabSet блокнот с закладками)
    Win3.1
    Використовується для створення блокнота з закладками.
    TabbedNoteBook многостраничная форма)
    Win3.1
    Використовується для створення багатосторінкових форм з закладками.
    NoteBook пачка страниц)
    Win3.1
    Використовується для створення пачки сторінок, може застосовуватися спільно з
    TabSet.
    Frame
    (фрейм)
    Standard
    Використовується як проектований у вигляді окремого вікна контейнер будь-яких компонентів.
    Володіє можливостями успадкування, може включатися в Депозитарій.

    42
    Лекція №1.2.3 Тема Робота з компонентами разрядного інтерфейса
    Мета: Вивчити компоненти разрядного інтерфейсу, їх властивості та можливості застосування
    Література
    1.Б.Страуструп Программирование. Принципы и практика с использованием C++» Вильямс 2016 2. Стивен Прата Язык программирования С Вильямс 2013 3. Алекс Элайн От ламера до программера С Питер 2015
    Хід заняття І. Організаційний момента) готовність групи до заняття; б) психоемоційний настрій; в) перевірка присутніх.
    ІІ. Актуалізація опорних знань студентів а) повідомлення теми та мети заняття; б) відповіді на запитання: Де розташована кнопка Button ?

    Які властивості є у кнопки Button ? У чому полягає різниця між Button та BitBtn ? За що відповідає властивість Kind кнопки BitBtn?

    Які властивості має кнопка SpeedButton?

    Які є текстові мітки?

    Чому не завжди можна використовувати компонент StaticText? У чому призначення компонентів- контейнерів?
    1   2   3   4   5   6   7


    написать администратору сайта