КАФЕДРА
Дата ___________________
Тема:
Скріпт мова управління віконним інтерфейсом на С++
“____” __________ 2008р.
Робота захищена
“____” __________ 2008р.
з оцінкою
_____________________
Підписи членів комісії
Зміст
Вступ
Поставимо перед собою задачу створення програми скріпт мови управління віконним інтерфейсом. Для створення програми необхідно ознайомитися з основними можливостями середовища програмування С++ BILDER фірми Borland.
Замість окремого інструментарію, що оперує візуальними елементами керування, в C++ Builder інтегрована так називана Палітра компонентів, розділена картотечними вкладками на кілька функціональних груп. Функціональні можливості компонентів, що поставляють, можна досить просто модифікувати, а також розробляти компоненти, що володіють зовсім новим оригінальним поводженням.
ТЕОРІЯ
Бібліотека Візуальних Компонентів дозволяє програмістам візуально створювати програмні додатки, не прибігаючи більше до кодування класів "вручну", або кодуванню в рамках стандартних бібліотек MFC (Microsoft Foundation Class), або OWL (Object Windows Library).
C++ програмістам тепер не треба створювати або маніпулювати об'єктами інтерфейсу з користувачем шляхом написання відповідного коду. Переважна більшість додатків ви будете розробляти візуально за допомогою Редактора форм C++Builder, додаючи лише кілька рядків к.оброблювачам ключових події компонент. Використайте об'єкти завжди, коли це можливо; твердо пручайтеся позиву написати новий код те тих пор, поки всі інші можливості не будуть вичерпані.
Вам буде потрібно оперативне володіння пристроєм Бібліотеки Візуальних Компонентів. Глибина необхідних програмістам знань про склад і функціональні характеристики Бібліотеки визначається тим, як ви збираєтеся неї використати. За допомогою команди головного меню Help | VCL Reference ви можете одержувати відомості з довідкової служби в процесі роботи з Бібліотекою.
VCL для прикладних програмістів
Програміст створює закінчений додаток за допомогою інтерактивної взаємодії з інтегрованим візуальним середовищем C++Builder, використовуючи компоненти VCL для створення інтерфейсу програми з користувачем і з іншими керуючими елементами: обслуговування баз даних, контрольованого уведення параметрів і т.д. Характерна для C++Builder методика візуального стилю розробки програмного забезпечення не застосовується множиною інших систем програмування.
Програмісти повинні знати властивості, методи й події, властивим використовуваним компонентам. Більше того, розуміння архітектури VCL дозволяє вдосконалювати вашу програму в тих місцях, де відчувається необхідність розвитку існуючих або створення нових компонентів. Перш, ніж винаходити новий елемент, упевніться, як прийнято, чи не створив уже хтось компоненту з потрібними вам характеристиками.
VCL для системних програмістів
Системні програмісти розвивають існуючу Бібліотеку - або додаючи в неї нові елементи, або розширюючи функціональність уже наявних компонентів. Розроблювачі компонентів повинні мати більше глибокі знання про внутрішній пристрій VCL, ніж прикладні програмісти. Потрібно чітко уявляти собі, який прийом швидше приведе до поставленої мети: розвиток наявної або написання нового компонента. Написання компонентів являє собою більше традиційну задачу програмування й сполучено з більшими умовностями, ніж візуальне створення додатків.
Варіанти C++Builder Professional й C++Builder Client/Server Suite поставляються разом з вихідними текстами VCL. Наявність вихідних текстів полегшує завдання програмістів, які займаються розробкою нових компонентів і розширенням функціональних можливостей уже наявних компонентів Бібліотеки.
Для створення нових компонентів можна з однаковим успіхом користуватися засобами C++Builder або Delphi, однак якщо розроблені компоненти пропонуються для зовнішнього застосування, автор зобов'язаний упевнитися, що вони працюють у рамках обох систем.
Компоненти VCL
Компоненти - це будівельні цегли, з яких конструюється інтерфейс програми з користувачем, за допомогою яких "будинок" програми здобуває новий зовнішній вигляд і сховані особливості. Для прикладного програміста будь-який компонент VCL являє собою об'єкт, якому можна "перетягнути" із вкладок Палітри компонент (Рис. 6.1) на форму створюваного додатка. Помістивши компоненту на форму, можна маніпулювати її властивостями (за допомогою Редактора форм) і кодом (за допомогою Редактора коду), надаючи компоненті специфічне поводження.
Палітра компонентів з обраною піктограмою TLahel
Для розроблювача компонента являють собою об'єкти на C++ або на Об'єктному Паскале. Деякі компоненти инкапсулируют поводження типових елементів керування, надаваних операційними системами Windows. Інші компоненти вводять зовсім нові видимі й невидимі елементи, програмний код яких повністю визначає їхнє поводження.
Складність компонентів різна. Так TLabel із вкладки Standard Палітри компонентів здатна лише відображати статистичний текст. Можна сконструювати значно більше складний компонент, що, наприклад, инкапсулирует закінчене обслуговування бухгалтерських документів спеціалізованої бази даних.
Типи компонентів
З погляду прикладного програміста компонентний об'єкт являє собою закінчену конструкцію, що містить властивості, методи й події. На відміну від розроблювача компонентів, користувачеві компонентів байдуже, від якого класу зроблений даний компонент.
Прикладные програмісти приймають як факт, що кожен компонент має властивості Тор й Left, які визначають положення компонента на формі-власнику; для них не істотно, що ці властивості успадковані від загального попередника TComponent. Навпроти, коли ви створюєте компонент, ви зобов'язані знати, від якого батька можна запозичити потрібні вам властивості, а також всі інші його характеристики, так, щоб їх можна було успадковувати, а не створювати знову.
З визначення об'єктних класів ви знаєте, що при визначенні деякого класу (спадкоємця) ви робите його від існуючого об'єктного типу (безпосереднього попередника). Стандартний абстрактний тип TObject є, за замовчуванням, першим попередником (прабатьком) всіх об'єктів Бібліотеки Візуальних Компонентів.
Компоненти по суті являють собою об'єкти спеціальних типів. Лише трохи виключенні виділяють структуру компонентів із загальних правил структурування об'єктів мовою C++:
• Більшість компонентів являють собою елементи керування інтерфейсом з користувачем, причому деякі мають досить складне поводження.
• Усі компоненти є прямими або непрямими нащадками одного загального класу-прабатьків (TComponent).
• Компоненти звичайно використаються безпосередньо, шляхом маніпуляцій з їхніми властивостями; вони самі не можуть служити базовими класами для побудови нових підкласів.
• Компоненти розміщаються тільки в динамічній пам'яті за допомогою оператора new.
Розуміння VCL засноване на трьох фундаментальних принципах. По-перше, вам доведеться ознайомитися зі спеціальними характеристиками чотирьох базисних типів компонент: стандартного керування, оригінального керування (custom control), графічного керування й невидимих компонентів. По-друге, ви повинні розуміти структуру Бібліотеки, у яку убудовані описи й реалізації кодів компонент. У третіх, ви повинні знати положення згаданих чотирьох типів компонент в ієрархії VCL.
Стандартні компоненти
Деякі компоненти VCL инкапсулируют поводження таких типових елементів керування операційної системи Windows, як TButton, TListbox й TEdit. Ви знайдете стандартні компоненти на вкладках Standard й Win95 Палітри компонентів.
Будь-який стандартний компонент виглядає й поводити точно так само, як й инкапсулированный нею елемент керування Windows. VCL додає обрамлення, що ніяк не міняє властивостей вихідного елемента керування, а лише робить доступної модифікацію виду й поводження компоненти за допомогою властивостей і методів.
Якщо ви збираєтеся використати стандартні компоненти без змін, вам не потрібно вникати в правила побудови обрамлень VCL. Розроблювач компонентів може відкрити файл вихідних текстів стандартних компонентів, що входить у поставку версій C++Builder Professional або Client/Server Suite, щоб зрозуміти, яким образом відомі елементи керування Windows обрамляються при включенні в Бібліотеку.
Наприклад, компонента TListBox відображає елементи списку в один стовпець, хоча инкапсулирует клас простого списку LISTBOX з Windows, що може відображати список у кілька стовпців. Щоб змінити поводження компонента, вам доведеться реалізувати перевантаження методу створення даного компонента, прийнятого за замовчуванням.
Оригінальні компоненти
На відміну від стандартних компонентів, оригінальні компоненти являють собою елементи керування, у яких немає ні методу для власного відображення, ні заздалегідь певного поводження. Розроблювач компонентів повинен передбачити код, що реалізує малювання самого компонента й код, що визначає поводження компонента, коли користувач взаємодіє з нею. Прикладами оригінальних компонентів є TPanel й TStringGrid.
Слід зазначити, що як стандартні, так й оригінальні компоненти завжди асоціюються з деяким вікном керування, тому іноді називаються віконними (windowed components). Даний аспект докладно обговорюється в параграфі, що описує клас TWinControl. Віконні компоненти мають наступні властивості: вони можуть бути активізовані (прийняти фокус уведення), використають системні ресурси й можуть служити контейнерами, тобто бути родителями інших елементів керування. Прикладом контейнерного компонента є TPanel.