Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Основні концепції об’єктно-орієнтованого програмування, поняття, терміни.↑ Стр 1 из 2Следующая ⇒ Содержание книги
Поиск на нашем сайте
Основні концепції об’єктно-орієнтованого програмування, поняття, терміни. У програмуванні широко використовують фундаментальний принцип керування складними системами – devide et impera, згідно з яким при проектуванні складної програмної системи здійснюють алгоритмічну декомпозицію задачі. Метою декомпозиції є подання системи у вигляді сукупності взаємодіючих систем, кожну з яких можна налагоджувати незалежно одна від одної. Ідея розділення програм на самостійні частини, які реалізовують підпрограми, знайшла відображення в структурному підході до створення програмних продуктів. Дальший розвиток стректурного підходу привів до модульного програмування, яке передбачає декомпозицію задачі у вигляді ієрархії взаємодіючих модулів (програм). Розвитком ідеї модульного програмування є моделювання об’єктів предметної області за допомогою класів (об’єктних типів). Ієрархічна класифікація об’єктів і наслідування властивостей стали початковими точками у розвитку концепції об’єктно-орієнтованого програмування. Основним поняттям ООП є клас (відповідає визначеному типовому об’єктові предметної області; це визначена програмна одиниця, яка має 3 важливі властивості: інкапсуляція, наслідування, поліморфізм). Інкапсуляція – це об’єднання і локалізація у рамках класу, як єдиного цілого, даних і підпрограм, які опрацьовують дані. Наслідування – властивість класу породжувати своїх нащадків – класи, які успадковують властивості батьківського класу. Поліморфізм – властивість класів родичів по-різному створювати однотипні дії.
2.Зміст і призначення поняття клас. Що таке інкапсуляція? Клас – це визначена програмна структура, яка має 3 важливі властивості: інкапсуляція, наслідування, поліморфізм. Ці властивості даюсь змогу адекватно відображати структуру предметної області. Інкапсуляція – («вміст в оболонці») – це об’єднання і локалізація у рамках класу, як єдиного цілого, даних і підпрограм, які опрацьовують ці дані. Клас – це деякий абстрактний тим, який створюється на основі наявних типів. Окремий клас включає такі елементи: поля, методи, властивості, події. Поля класу подібні до полів запису і служать для зберігання інформації про об’єкт. Поле описується як змінна, що може належати до будь-якого типу. Методи – це процедури та функції, призначені для опрацювання полів. Заголовок методі розміщується в опису класу, а сам код – в розділі реалізації модуля. Властивості займають проміжне положення між полями та методами. Кожній властивості відповідає поле, що містить її значення, і 2 методи, що забезпечують доступ до цього поля (читання/запис значень). Подія – спеціальна властивість типу TNotifyEvent. Структура класу: Type назва класу = class (назва класу предка) (відкриті/опубліковані поля, методи, властивості, події); Private //видно тільки в цьому модулі Закриті поля, методи, властивості, події; Protected //видно у цьому модулі і нащадкам Захищені поля, методи, властивості, події; Public //відкритий доступ Відкриті поля, методи, властивості, події; Published //відкритий доступ і видно в Інспекторі об’єктів Опубліковані поля, властивості; End; Клас TObject є базовим класом для всіх інших класів. 3. Зміст і призначення поняття об’єкт (екземпляр). Яку пам’ять використовує екземпляр? Оголошення класу ще не задає об’єкта, а тільки визначає тип того об’єкта, який буде створений у програмі пізніше. Визначення об’єктів може виглядати так: var c1,c2,c2: TCircle; Тут визначені об’єкти с1, с2, с3 типу TCircle. В Object Pascal усі об’єкти розміщуються в динамічній пам’яті, а тому вони фактично є покажчиками спеціального виду. Під час компілювання програми кожному об’єкту, незалежно від його класу, виділяється фіксована ділянка пам’яті (4 байти) для зберігання адреси розміщення об’єкта в динамічній пам’яті. Перш ніж звертатись до елементів об’єкта, його необхідно створити за допомогою конструктора, і, при потребі, задати в ньому початкові значення полів об’єкта. При створенні нового об’єкта виклик конструктора реалізується через назву класу, наприклад: c1:=TCircle.create; Покажчик (об’єкт) с1 отримує адресу розміщення у динамічній пам’яті нового об’єкта класу TCircle.якщо конструктор Create доповнювався у відповідному класі, то під час виконання він має ініціалізувати поля і/або властивості об’єкта за допомогою значень, що передаються як аргументи конструктора: c2:=TCircle.Create(x2,y1); Конструктор класу під час створення об’єкта виконує дії задані програмістом, реалізує стандартні дії зі створення об’єкта.
4. Що таке успадкування (наслідування)? З якою метою його використовують? Властивість наслідування означає, що будь-який клас може бути породжений іншим класом, як от: TNewClass=Class (TOldClass) … Клас-нащадок автоматично успадковує всі поля, методи і властивості класу-предка і може доповнюватись новими. Але разом з тим видалити або перевизначити поля класу-предка у класу-нащадка неможливо. Отже, чим далі за ієрархією який-небудь клас знаходиться від батьківського класу, тим більше полів він має. У Object Pascal усі класи є нащадками класу TObect. Цей клас не має полів і властивостей, але його методи дають зможу створювати, підтримувати діяльність і знищувати об’єкти. Використання принципу наслідування привело до створення у Delphi розгалуженого дерева класів, у верхній частині якого знаходяться абстрактні класи, для яких не можна створити об’єкти. Водночас вони є предками класів, для яких уже створюються реальні об’єкти. Використання наслідування сприяє зменшенню кількості коду, створеного для опису схожих сутностей, а також сприяє написанню більш ефективного та гнучкого коду.
5. Що таке поліморфізм? Як його реалізують? Як його використовують? Властивість поліморфізму дає можливість використовувати однакові назви для методів, які входять у різні класи. При звертанні до таких методів буде виконуватись той з них, що відповідає класові об’єкта. Властивість поліморфізму дає можливість використовувати одинакові назви для методів, які входять у різні класи. При звертанні до таких методів буде виконуватись той з них, що відповідає класові об’єкта. Ця властивість забезпечується через перекриття у класові-нащадкові відповідного методу батьківського класу. Використовуючи поліморфізм, ми можемо значно спростити реалізацію подібної функціональності. Метод, оголошений в класі, можна викликати різними способами, що залежать від типу методу, який визначає механізм його перекриття в класах-нащадках. Тип методом визначають за допомогою кодифікатора, який вказують в описі класу після заголовка методу і відділяють від заголовка крапкою з комою. Кодифікатори: virtual – віртуальний метод, dynamic – динамічний метод, override – перевизначений метод, message – опрацювання повідомлення, abstract – абстрактний метод. Всі методи, оголошені в класі, є статичними і викликаються як звичайні підпрограми. Такі методи неможливо перевизначати для реалізації поліморфізму.
Public Property MyEvent:TNotifyEvent read FMyEvent write FMyEvent;
Надсилання повідомлень об’єктові. Повідомлення використовуються для виклику методів, описаних в класі. Методи знаходяться в регістрі CS. Наприклад, коли ми надсилаємо змінній P типу TShape повідомлення P.Sqare, то вказівник на об`єкт P до якого ми звертаємося, передає керування об`кту, який заходиться в heap. Далі з регістру CS викликаєтьяся відповідний метод описаний в класі TShape. Метод опрацьовує дані і повертає значення в heap. Для обєкта типу TSubClass(TBaseClass) можна викликати методи писані як вньому самому, так і унаслідувані від класу TBaseClass, якщо такі є. Створення та налаштування компоненти на етапі проектування та на етапі виконання. TForm Стиль форми задається одним з значень наступної властивості: TFormStyle = [fsNormal, fsMDIChild, fsMDIForm, fsStayOnTop]; Набір піктограм в заголовку вікна описується властивістю:
TLabel Для відображення різних написів на формі використовують компонент TLabel. Тексти визначаються значенням їх властивості Caption. Його можна встановлювати в процесі проектування або задавати і змінювати програмно під час виконання програми. Наприклад:
TSpinEdit Компонент TspinEdit призначений для введення/відображення числа. Він являє собою комбінацію спеціалізованого нащадку однорядкового текстового поля TCustonEdit та кнопки TSpinButton. В текстовому полі допустиме введення тільки чисел, а кнопки використовують для зміни числа на деяку фіксовану величину. Властивості: Property EditorEnabled: Boolean – дозволяє/забороняє ручне введення чисел в текстове поле. Property Increment: LongInt – містить число, на яке зміниться властивість Value при натисканні на одній з кнопок TSpinButton. Property MaxValue: LongInt – містить верхню границю діапазону можливих значень Value Property Value: LongInt - містить поточне значення числової величини.
TButton Компонент TButton широко використовується для управління програмою. Пов’язаний з кнопкою алгоритм управління реалізується в обробнику подій OnClick. Властивості компонента: Property Cancel: Boolean – якщо значення true, подія OnClick кнопки виникає при натиску клавіші <Esc>. Property Default: Boolean – якщо значення true, подія OnClick при натиску клавіші <Enter>. Type TModalResult=Low(integer)…High(integer); Property ModelResult: TModalResult – визначає результат, з яким було закрите модальне вікно. Основне з точки зору зовнішнього вигляду властивість кнопки - Caption (напис). У написах кнопок можна передбачати використання клавіш прискореного доступу, виділяючи для цього один із символів напису. Перед символом, який повинен відповідати клавіші прискореного доступу, ставиться символ амперсанта «&». Цей символ не з'являється в написі, а наступний за ним символ виявляється підкресленим. Тоді користувач може замість клацання на кнопці натиснути в будь-який момент клавішу Alt спільно з клавішею виділеного символу.
TBitBtn Всі властивості компоненти button відносяться і до BitBtn. Розглянемо тепер особливості кнопки з піктограмою BitBtn. Зображення на цій кнопці задається властивістю Glyph. Файл зображення для кнопки може містити до чотирьох зображень піктограм розміру 16x16. Саме ліве відповідає відкритій кнопці. Друге ліворуч відповідає недоступній кнопці, коли її властивість Enabled рівне false. Третє зліва зображення використовується при натисканні користувача на кнопку при її включенні. Четверте зліва зображення використовується в кнопках з фіксацією SpeedButton для зображення кнопки в натиснутому стані. Більшість зображень для кнопок використовує дві піктограми. Число піктограм ви можете дізнатися з властивості кнопки NumGlyphs, яке після завантаження зображення покаже вам число піктограм в ній.
TEdit У компонентах Edit і MaskEdit вводиться і виводиться текст міститься у властивості Text. Це властивість можна встановлювати в процесі проектування або задавати програмно. Вирівнювання тексту, як це мало місце в мітках і панелях, неможливо. Перенесення рядків теж неможливий. Текст, не поміщається по довжині у вікно, просто зрушується і користувач може переміщатися по ньому за допомогою курсору. Властивість AutoSize у вікнах редагування має сенс, відмінний від змісту аналогічного властивості міток: автоматично підлаштовується під розмір тексту тільки висота, але не ширина вікна.
TMemo Компонент Memo є вікном редагування багаторядкового тексту. Він так само, як і вікно Edit, забезпечений багатьма функціями, властивими більшості редакторів. У ньому передбачені типові комбінації «гарячих» клавіш: Ctrl-C - копіювання виділеного тексту в буфер обміну "Clipboard" (команда "Copy"), Ctrl-X - вирізання виділеного тексту в буфер "Clipboard" (команда "Cut"), Ctrl -V - вставка тексту з буфера "Clipboard" в позицію курсору (команда "Paste"), Ctrl-Z - скасування останньої команди редагування. У компоненті Memo формат (шрифт, його атрибути, вирівнювання) однаковий для всього тексту і визначається властивістю Font. Властивості: Property Lines: Tstrings – містить рядки тексту. Property ScrollBars: TscrollStyle – визначає наявність в багаторядковому полі полоси прокрутки: ssNone – немає полос, ssHorizontal/ssVertical – є горизонтальна/вертикальна полоса, ssBoth – є обидві полоси. Property Text: String – відображає вміст властивості Lines в вигляді одного довгого рядку, в якій границі окремих рядків визначаються символами EOL. Property WantReturns: Boolean – якщо значення true, натиск на клавішу <Enter> викликає перехід на новий рядок. Property WantTabs: Boolean – якщо значення true, натиск на клавішу <Tab> викликає введення в текст символа табуляції.
TBevel Компонент Tbevel носить оформлювальний характер і призначений для видалення групи елементів чи відокремлення їх один від одного. Вид компонента (прямокутник, рамка, верхня лінія, нижня лінія,ліва лінія, права лінія) визначає наступна властивість: Type TbevelShape=(bsBox, bsFrame, bsTopLine, bsBottomLine, bsLeftLine, bsRightLine); Property shape: TBevelShape; Стиль компонента (втиснутий чи випуклий) визначає наступна властивість: Type TBevelStyle=(bxLowered, bsRaised); Property Style: TBevelStyle;
TShape Компонент Shape тільки умовно може бути віднесений до засобів відображення графічної інформації, оскільки просто є різні геометричні фігури, відповідним чином заштриховані. Основна властивість цього компонента - Shape (форма), що може приймати значення:stRectangle прямокутник,stRoundRect прямокутник з округленими кутами,stEllipse еліпс, Інша істотна властивість компонента - Brush (кисть). Ця властивість є об'єктом типу TBrush, які мають ряд підвластивостей, зокрема: колір (Brush.Color) і стиль (Brush.Style) заливки фігури. Третє зі специфічних властивість компонента Shape - Pen (перо), що визначає стиль ліній.
TPanel Компонент TPanel являє собою контейнер загального призначення. На відміну від компонента TGroupBox, він не має заголовку і тому менш зручний для функціонального групування елементів. З іншої сторони, його властивість Caption відображається в вигляді текстового рядка і може використовуватись для виведення повідомлення. Компонент має розвинуті засоби створення різних ефектів об’ємності за рахунок використаних в ньому двох країв – зовнішньої та внутрішньої. Зовнішній вигляд панелі Panel визначається сукупністю параметрів BevelInner - стиль внутрішньої частини панелі, BevelOuter - стиль зовнішньої частини панелі, BevelWidth - ширина зовнішньої частини панелі, BorderStyle - стиль бордюру, BorderWidth - ширина бордюру. Властивість Property fullRepaint: Boolean – дозволяє/забороняє перемалювання панелі і всіх її дочірніх елементів при зміні її параметрів. Для компоненти оголошено подію OnResiZe, в обробнику якої програміст може передбачити необхідну реакцію на зміну розмірів компоненти.
TListBox Простий список, представлений компонентом ListBox, являє собою прямокутну область, в якій розташовуються його елементи - рядки. Якщо рядків у списку більше, ніж може поміститися у відведеній області, то автоматично з'являється смуга прокрутки. Якщо розглядати методи списку, то основна їхня частина призначена для виконання тих чи інших маніпуляцій над вибраними елементами:ClearSelection - знімає виділення з усіх обраних елементів; CopySelection - копіює вибрані елементи до іншого списку; DeleteSelected - видаляє всі виділені елементи зі списку; SelectAll - виділяє всі елементи в списку.
TComboBox Він цікавий тим, що як би об'єднує в собі відразу 2 компонента - рядок редагування (Edit) і список (ListBox).При роботі з таким елементом інтерфейсу, званим комбінованим, або спадаючим списком, користувач може як вводити власний текст, так і вибирати один з наявних у списку варіантів. Тим самим долається таке обмеження останнього, як неможливість безпосереднього введення тексту.
TGroupBox GroupBox - "контейнер" для компонент. Використовується для об'єднання елементів в окремі області. При переміщенні GroupBox'а всі компоненти, розташовані на ньому, також переміщуються. Для розміщення компонентів в цьому контейнері слід після вибору їх на Палітри компонент клацнути по самому контейнеру (а не за формою, як завжди). У GroupBox можна задати текст заголовка (властивість Caption). Якщо ви будуєте програму, де дозволяєте користувачеві змінювати розмір вікна, треба подбати про те, щоб синхронно з цим змінювалися і розміри GroupBox. властивості Align, Anchors і Constraints дозволяють вирішити цю задачу. TCheckBox Це незалежні перемикачі - прапорці. У VCL прапорець представлений компонентом CheckBox. Він виглядає як невеликий прямокутник з текстовим заголовком, розташованим справа. Якщо ж раптом з'явиться гостра необхідність «розгорнути» прапорець таким чином, щоб текст був ліворуч, то можна встановити властивість Alignment в taLeftJustify. Але найважливішим властивістю прапорця, мабуть, є Checked. Саме воно визначає його стан. Так, якщо прапорець включений (що візуально проявляється як наявність галочки на квадратику), то ця властивість має значення істини, а якщо вимкнений - брехні. Цією властивістю можна управляти програмно, візуально це буде проявлятися як поява або зникнення галочки.
TRadioGroup Почнемо розгляд радіокнопок з компонента RadioGroup - панелі групи радіокнопок. Це панель, яка може містити регулярно розташовані стовпцями і рядками радіокнопки. Напис в лівому верхньому кутку панелі визначається властивістю Caption. А написи кнопок і їх кількість визначаються властивістю Items, які мають тип TStrings. Клацнувши на кнопці з трьома крапками близько цієї властивості у вікні Інспектора Об'єктів, ви потрапите в редактор списків рядків, в ньому ви можете занести написи, які хочете бачити біля кнопок, по одній в рядку. Скільки рядків ви запишете - стільки і буде кнопок.
TTimer Компонент Timer дозволяє задавати в додатку інтервали часу. Таймер знаходить численні застосування: синхронізація мультиплікації, закриття якихось вікон, з якими користувач довгий час не працює, включення зберігача екрану або закриття зв'язків з віддаленим сервером за відсутності дій користувача, регулярний опитування якихось джерел інформації, завдання часу на відповідь у навчальних програмах - все це безліч завдань, в яких потрібно задавати інтервали часу, вирішується за допомогою таймера.
TMainMenu Основна властивість компонента - Items. Його заповнення проводиться за допомогою Конструктора Меню, що викликається подвійним клацанням на компоненті MainMenu або натисканням кнопки з трьома крапками поруч із властивістю Items у вікні Інспектора Об'єктів. TPopupMenu Контекстне меню прив'язане до конкретних компонентів. Воно спливає, якщо в час, коли даний компонент у фокусі, користувач клацне правою кнопкою миші. Зазвичай в контекстне меню включають ті команди головного меню, які в першу чергу можуть знадобитися при роботі з даними компонентом. Контекстного меню відповідає компонент PopupMenu. Оскільки в додатку може бути кілька контекстних меню, то і компонентів PopupMenu може бути декілька. Формування контекстного меню спливаючого проводиться за допомогою Конструктора Меню, що викликається подвійним клацанням на PopupMenu. Звернемо тільки увагу на можливість спрощення цієї роботи. Оскільки розділи контекстного меню зазвичай повторюють деякі розділи вже сформованого головного меню, то можна обійтися копіюванням відповідних розділів. Для цього, увійшовши в Конструктор Меню з компонента PopupMenu, клацніть правою кнопкою миші і з меню виберіть "Select Menu". Вам буде запропоновано діалогове вікно, в якому ви можете перейти в головне меню. У ньому ви можете виділити потрібний вам розділ або. Потім виконайте копіювання їх в буфер обміну, натиснувши клавіші Ctrl-C. Після цього знову клацніть правою кнопкою миші, виберіть команду "Select Menu" і поверніться в контекстне меню. Вкажіть курсором місце, в яке хочете вставити скопійовані розділи, і натисніть клавіші читання з буфера обміну - Ctrl-V. Розділи меню разом з усіма їхніми властивостями будуть скопійовані в створюване вами контекстне меню.
TMenuItem Цей компонент, який є основою системи меню в Delphi, ви не зустрінете в Палітрі компонентів - він входить до складу наявних там компонентів TMainMenu і TPopupMenu.
TToolBar, TToolButton Якщо ви помістите компонент ToolBar на форму, то за замовчуванням він розташується вгорі, оскільки його властивість Align за замовчуванням дорівнює alTop. Якщо ви хочете, щоб панель розташовувалася інакше, встановіть Align = alNone, після чого можете надати панелі будь-яку форму і розташувати її в будь-якому місці. TImageList Компонент ImageList являє собою набір зображень однакових розмірів, на які можна посилатися за індексами, що починається з 0. Цей компонент дозволяє організувати ефективне і економне управління безліччю піктограм і бітових матриць. Він може включати в себе монохромні бітові матриці, що містять маски для відображення прозорості мальованої зображень. Зображення в компонент TImageList можуть бути завантажені в процесі проектування з допомогою редактора списків зображень. Вікно редактора, викликається подвійним клацанням на компоненті TImageList або клацанням правої кнопки миші і вибором команди контекстного меню "ImageList Editor". У вікні редактора списків зображень ви можете додати в списки зображення, користуючись кнопкою "Add", видалити зображення зі списку кнопкою "Delete", очистити весь список кнопкою "Clear". Тільки врахуйте, що розмір всіх зображень у списку повинен бути однаковим. Кожне завантажене в список зображення отримує індекс. Саме на ці індекси згодом ви можете посилатися у відповідних властивостях розділів меню, списків, кнопок і т.д., коли вам треба завантажити в них те чи інше зображення.
TActionList Клацання правою кнопкою миші або клацання на маленькій кнопочки зі стрілкою вниз праві першо
|
||||
Последнее изменение этой страницы: 2016-08-14; просмотров: 456; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.226.34.80 (0.013 с.) |