- •Методичний посібник для самостійної роботи
- •5.05010201 «Обслуговування комп’ютерних систем і мереж»
- •5.05010201 «Обслуговування комп’ютерних систем і мереж»
- •Затверджено методичною радою коледжу
- •Мета та задачі предмету. Історія створення та розвитку мови Pascal. Етапи розробки програми. Інтегроване середовище Turbo Pascal 7.0. Основні розділи теми.
- •Помилки. Компілятор. Синтаксис і семантика
- •Типи помилок
- •Інтегроване середовище Turbo Pascal 7.0.
- •Рядок меню.
- •Меню Compile
- •Питання для самоконтролю.
- •Алфавіт мови. Структура програми. Типи даних. Основні розділи теми.
- •Алфавіт мови
- •Типи даних
- •Стандартні типи даних.
- •Цілі типи
- •Дійсні типи
- •Нестандартні прості типи.
- •Наприклад
- •Завдання 1:
- •Типізовані константи.
- •Структура програми.
- •Перша програма.
- •Питання для самоконтролю.
- •Лінійні програми. Команди присвоювання. Команди введення та виведення даних. Форматоване виведення даних. Основні розділи теми.
- •Лінійні програми.
- •Команда присвоювання.
- •Основні операції, стандартні функції і процедури. Основні операції
- •Основні стандартні функції і процедури
- •Правила запису арифметичних виразів.
- •Правила запису стандартних функцій.
- •Команди введення даних (read, readln).
- •Команди виведення даних (write, writeln).
- •Форматоване виведення даних.
- •Х.ХхххххххххЕзнакхх
- •Питання для самоконтролю.
- •Завдання 2:
- •Розгалуження: складена команда, логічний вираз, команда розгалуження if. Команда case. Основні розділи теми.
- •Розгалуження
- •Складений оператор.
- •Логічний вираз
- •Умовний оператор if.
- •Задача2:
- •Задача 3.
- •Оператор goto.
- •Вкладений if
- •Слід знати:
- •Задача 4.
- •Задача 5.
- •Оператор вибору case.
- •Задача 6.
- •Питання для самоконтролю.
- •Завдання 3. Написати і відладити наступні програми.
- •Цикли. Команда циклу з параметром (for), команда циклу з передумовою (while), команда циклу з після умовою (repeat). Основні розділи теми.
- •Оператор циклу з параметром (for).
- •Ця команда діє, як і попередня, але крок зміни лічильника рівний -1.
- •Задача 7.
- •Задача 8.
- •Задача 9.
- •Команда циклу з передумовою (while).
- •Задача 10.
- •Команда циклу з післяумовою (repeat).
- •Задача 11.
- •Задача 12.
- •Задача 13.
- •Завдання 4:
- •Завдання 5:
- •Завдання 6:
- •Завдання 7.
- •Дайте відповідь на питання, скільки разів ця цифра зустрічається в числі Задача 17:
- •Завдання 8
- •Вкадені цикли.
- •Задача 18
- •Завдання 9
- •Питання для самоконтролю.
- •Масиви. Опис масивів. Дії над масивами. Масиви. Основні розділи теми.
- •Опис масивів.
- •Опис меж
- •Дії над масивами.
- •Заповнення масиву даними
- •Виведення масиву.
- •Обробка масиву
- •Дії з одновимірними масивами
- •Завдання 10:
- •Питання для самоконтролю.
- •Завдання для самоконтролю.
- •Сортування масивів. Двовимірні масиви. Сортування масиву Основні розділи теми.
- •Лінійне сортування (сортування відбором)
- •Програма лінійного сортування по не зростанню
- •Бульбашковий метод.
- •Підсумовування елементів кожного рядка.
- •Програма транспонування матриці.
- •Завдання 12:
- •Питання для самоконтролю.
- •Підпрограми. Процедури, функції. Рекурсивні функції. Основні розділи теми.
- •Процедури (procedure) і функції (function).
- •Виклик процедур і функцій.
- •Оператор виклику працює так:
- •Область дії параметрів:
- •Завдання 13:
- •Рекурсивні функції.
- •Завдання 14:
- •Задачі, з постановки якиїх можна витягнути рекурсію.
- •Задачі, які можна розв’язати як окремий випадок узагальненої.
- •Задачі, в яких можна використати характеристику або властивість функції.
- •Відкриті масиви.
- •Завдання 15:
- •Питання для самоконтролю.
- •Дані рядкового типу string. Основні розділи теми.
- •Тип даних char.
- •Рядковий тип
- •Задача 28.
- •Операції над рядками
- •Задача 29.
- •Операції відношення
- •Рядкові процедури і функції
- •Задача 30.
- •Задача 31.
- •Питання для самоконтролю.
- •Завдання 16:
- •Модулі. Модулі користувача. Стандартні модулі. Основні розділи теми.
- •Поняття модуля
- •Структура модуля
- •Компіляція модулів
- •Стандартні модулі Короткий опис модулів.
- •Графіка
- •Запитання
- •Оператор with
- •Питання для самоконтролю.
- •Завдання 18:
- •Файли і робота з ними. Основні розділи теми.
- •Текстові файли
- •Типізовані файли.
- •Процедури і функції для типізованих файлів:
- •Питання для самоконтролю.
- •Завдання 19:
- •Інтегроване середовище розробки Delphi 7. Мова програмування Delphi. Структура програми Delphi: структура проекту, структура модуля, елементи програми. Основні розділи теми.
- •Інтегроване середовище розробки.
- •Головне вікно
- •Інструментальні кнопки
- •Палітра компонентів
- •Вікно форми
- •Вікно дерева об'єктів
- •Вікно інспектора об'єктів
- •Вікно коду програми
- •Зміна властивостей форми
- •Оброблювач події OnClick
- •Структура програм Delphi
- •Структура проекту
- •Структура модуля
- •Питання для самоконтролю.
- •Класи. Складові класу. Методи та властивості. Питання для самоконтролю.
- •Методи.
- •Властивості.
- •Оголошення класу.
- •Питання для самоконтролю.
- •Форми. Різновид форм. Створення і використання форм. Основні розділи теми.
- •Різновиди форм.
- •Методи форми
- •Події форми.
- •Робота з формою.
- •Питання для самоконтролю.
- •Компоненти. Властивості компонентів. Основні розділи теми.
- •Знайомство з компонентами.
- •Вкладка Standard
- •Вкладка Additional
- •Вкладка Win32
- •Вкладка System
- •Вкладка Dialogs
- •Вкладка Win31
- •Вкладка Samples
- •Вкладка ActiveX
- •Робота з об’єктами.
- •Питання для самоконтролю.
- •Delphi 7. Файли. Доступ до файлу. Текстові файли. Основні розділи теми.
- •Теоретичні відомості.
- •Хід роботи
- •Практична робота № 2.
- •Тема: Створення гри «Спіймай кнопку».
- •Мета: Вивчення особливостей компонента Timer.
- •Короткі теоретичні відомості.
- •Хід роботи.
- •Практична робота № 3
- •Тема: Створення логічної гри.
- •Мета: Вивчення можливостей використання властивості Tag і об'єкта Sender.
- •Короткі теоретичні відомості.
- •Хід роботи.
- •Практична робота № 4.
- •Тема: Генератор функцій.
- •Мета: Вивчення компонента PaintBox і методів малювання на канві. Компонент TrackBar.
- •Короткі теоретичні відомості.
- •Хід роботи.
- •Практична робота № 5
- •Тема: Створення елементів інтерфейсу найпростішого графічного редактора.
- •Мета: Вивчення компонентів ColorGrid, SpinEdit, RadioGroup, ListBox, ColorDialog.
- •Короткі теоретичні відомості.
- •Хід роботи. Частина 1
- •Частина 2.
- •Література
Питання для самоконтролю.
ООП. Основні властивості ООП.
Клас, інтерфейс класу.
Об’єкт і його частини.
Повідомлення.
Наслідування.
Інкапсуляція.
Поліморфізм.
Методи.
Властивості.
Файл. Особливості файлів.
Види файлів.
Оголошення класу.
Секція public.
Секція protected.
Секція private.
Секція automated.
Секція published.
Література: 6.с.170..184; 7.с.25..31
Форми. Різновид форм. Створення і використання форм. Основні розділи теми.
Форма.
. Різновиди форм
. Робота з формою
Спеціалізовані форми в сховищі об'єктів.
Властивості форми.
Методи форми.
Події форми.
Форма є основним будівельним блоком в DELPHI. Будь-яка програма має як мінімум одну пов'язану з нею форму, яка називається головною. Ця форма з'являється у момент старту програми. Програма може мати скільки завгодно форм і з'являтися на екрані у міру потреби.
Різновиди форм.
Різновиди форм визначаються значеннями їх властивості FormStyle, а також різноманітністю форм-заготівель в сховищі об'єктів Delphi.
Стиль форми задається одним зі значень наступної властивості :
TFormStyle = (fsNormal, fsMDIChild, fsMDIForm,
fsStayOnTop);
property FormStyle: TFormStyle;
Стиль fsNormal визначає звичайну форму, що використовується для вирішення самих різних завдань, у тому числі для загального управління усією програмою(головна форма).
Стилі fsMDIChild і fsMDIForm використовуються при створенні так званих багатодокументних застосувань в стилі MDI(Multi Document Interface).
Для створення рамкового вікна використовується стиль fsMDIForm, а для створення дочірнього MDI- вікна - стиль fsMDIChild.
Стиль fsStayOnTop призначений для вікон, які завжди повинні розташовуватися над усіма іншими вікнами програми. У момент активізації вікна воно зазвичай стає видимим на екрані, навіть якщо перед цим його загороджували інші розкриті вікна.
Стиль fsStayOnTop перешкоджає перекриттю вікна іншими вікнами, навіть якщо воно стає неактивним і втрачає фокус введення. Зрозуміло, що цей стиль використовується у виняткових випадках, коли вікно містить щось, що вимагає підвищеної уваги користувача.
Щоб створити спливаюче вікно, треба звернутися до API- функції SetWindowPos. Наприклад:
SetWindowPos(fmAlarmForm.Handle, hwnd_TopMost, 300, 300, 250, 70, swp_noActivate)
Першим параметром звернення до функції є дескриптор вікна, яке повинне стати спливаючим. Дескриптор форми міститься в її властивості Handle, тому для форми fmAlarmForm параметр виклику має вигляд fmAlarmForm. Handle. Другий параметр визначає розташування вікна відносно інших вікон в так званому Z- порядку їх розташування. Константа hwnd _ TopMost вказує, що вікно повинне стати самим верхнім і аж до його закриття не може перекриватися іншими(звичайними) вікнами.
Чотири наступні параметри визначають координати лівого верхнього кута вікна, його ширину і висоту. Усі параметри вказуються в пікселах, координати кута задаються відносно лівого верхнього кута екрану. Останнім вказується один або декілька бітових прапорів, що уточнюють поведінку вікна. У нашому прикладі використаний прапор swp _ noActivate, що означає, що вікно не отримує фокусу введення у момент своєї появи на екрані. На практиці часто використовують спливаючі вікна, щоб повідомити користувача, наприклад, про необхідність оновити набір даних, які він бачить зараз, оскільки ці дані були змінені іншими користувачами клієнт-серверної бази даних. Таке вікно, на відміну від модального вікна, не повинне віднімати активність(фокус введення) біля вікна, з яким працює користувач.
Спливаючим вікном може стати і звичайне вікно(зі значенням стилю FormStyle=fsNormal). Проте спливаюче вікно дійсно з'явиться на екрані, тільки якщо в його властивості Visible міститься значення True. Іншими словами, якщо користувач закриє таке вікно, воно не з'явиться в результаті виклику функції SetWindowPos - його заздалегідь треба зробити видимим методом Show. Оскільки спливаюче вікно може викликатися в різних місцях програми, зручно помістити виклик функції SetWindowsPos його обробник події OnActivate. Проте якщо ви спробуєте створити такий обробник для вікна із стилем FormStyle=fsStayOnTop, то компілятор видасть повідомлення про помилку і помістить заготівлю методу в тексті модуля після обмежувача-точки(.). В цьому випадку визначайте вікно із стилем fsNormal.
У сховищі об'єктів Delphi зберігається безліч стандартних форм-заготівок, призначених для вирішення конкретних завдань(доступ до сховища об'єктів відкриває команда File ► New ► Other). Окрім універсальної порожньої форми Form(вкладка New сховища об'єктів) сховище містить спеціалізовані форми.
Таблица 1. Спеціалізовані форми в сховищі об'єктів.
Название |
Вкладка |
Описание |
About box |
Forms |
Вікно про програму |
Dual list box |
Forms |
Діалогове вікно з двома компонентами ListBox. Використовується для гнучкого управління списками, у тому числі для переміщення елементів з одного списку в інший. |
Quick Report Labels |
Forms |
Використовується в застосуваннях баз даних для друку наклейок |
Quick Report List |
Forms |
Використовується в застосуваннях баз даних для створення звичайних звітів |
Quick Report Master/Detail |
Forms |
Використовується в застосуваннях баз даних для створення звітів типу головно-детальний |
Tabbed Pages |
Forms |
Заготівка для багатосторінкового діалогового вікна з вкладками і кнопками OK, Cancel і Help |
Dialog with Help |
Dialogs |
Заготівка для діалогового вікна з кнопками OK, Cancel, Help. Є варіанти з вертикальним і горизонтальним розташуванням кнопок |
Password Dialog |
Dialogs |
Діалогове вікно з однорядковим полем TEdit для введення паролів, а також кнопками ОК і Cancel |
Reconcile Error Dialog |
Dialogs |
Використовується в застосуваннях баз даних для пояснення виявленої помилки при зміні таблиці |
Standard Dialog |
Dialogs |
Заготівка для діалогового вікна з кнопками OK, Cancel. Є варіанти з вертикальним і горизонтальним розташуванням кнопок |
Dialog Wizard |
Dialogs |
Майстер створення діалогових вікон |
Database Form Wizard |
Business |
Майстер створення форм для доступа до баз даних |
Quick Report Wizard |
Business |
Майстер створення звітів для баз даних |
TeeChart Wizard |
Business |
Майстер форм для доступа до компоненту Chart |
Компонент TForm
Розглянемо властивості, методи и події форми, тобто компонента TForm.
Властивості форми.
Властивості |
Опис |
property Active: Boolean; |
Містить значення True, якщо вікно активне(має фокус введення) |
property ActiveControl: TWinControl; |
Визначає дочірній елемент, що містить фокус введення |
property ActiveMDIChild: TForm |
Визначає дочірнє MDI-вікно з фокусом ввення |
property AlphaBlend: Boolean; |
Якщо містить значення True, форма визначає напівпрозоре вікно(тільки для Windows 2000 і вище) |
property AlphaBlendValue: Byte; |
Указує ступінь прозорості вікна |
TBorderlcon = (biSystemMenu, biMinimize, biMaximize, biHelp); TBorderlcons = set of TBorderlcon; property Borderlcons: TBorderlcons; |
Визначає наявність кнопок в заголовку вікна : biSystemMenu - кнопка виклику системного меню; biMinimize - кнопка згортання; biMaximize - кнопка розгортання; biHelp - кнопка виклику довідкової служби |
TFormBorderStyle = (bsNone, bsSingle, bsSizeable, bsDialog, bsToolWindow, bsSizeToolWin) ; property BorderStyle: TFormBorder Style; |
Визначає стиль рамки вікна : bsNone - вікно не має рамки і заголовка і не може переміщатися і змінювати свої розміри; bsSingle - рамка завтовшки в 1 піксел, таке вікно не може змінювати свої розміри; bsSizeable - звичайна рамка; bsDialog - рамка діалогового. вікна, вікно не може змінювати свої розміри; bsToolWindow - подібно bsSingle, але зі зменшеним по висоті заголовком; bsSizeToolWin - подібно bsSizeable, але зі зменшеним по висоті заголовком |
property Canvas: TCanvas; |
Канва для промальовування фону вікна. Цю властивість можуть використати невіконні дочірні елементи |
property ClientHeight: Integer; |
Висота клієнтської частини вікна |
property ClientRect: TRect; |
Прямокутник клієнтської частини вікна |
property ClientWidth: Integer; |
Ширина клієнтської частини вікна |
type TDefaultMonitor =(dmDesktop, dmPrimary, dmMainForm, dmActiveForm); property DefaultMonitor: TDefaultMonitor; |
Визначає монітор, на якому з'являється форма : dmDesktop - для форми не вказаний монітор; dmPrimary - форма з'являється на першому моніторі списку Monitors глобального об'єкту Screen; dmMainForm - форма з'являється на тому ж моніторі, що і головне вікно програми; dmActiveForm - форма з'являється на тому ж моніторі, що і поточне активне вікно |
property DropTarget: Boolean; |
Якщо містить значення True, форма підтримує перетягання(Drag&Drop) |
property Floating: Boolean; |
Якщо містить значення False, вікно причалило до іншого вікна, інакше воно "плаває" |
type TFormState = set of (fsCreating, fsVisible, fsShowing, fsModal, fsCreatedMDIChild, fsActivated); property FormState: TFormState; ; |
Визначає поточний стан форми : fsCreating - вікно створюється; fsVisible - вікно видно на екрані(цей стан використовується для оновлення властивості Visible); fsShowing -свойство FormState змінюється; fsModal - створено модальне вікно; fsCreatedMDIChild - форма є рамкове MDI - okho(встановлюється у момент створення дочірнього вікна); fsActivated - форма отримала повідомлення CM _ ACTIVATE, але ще не виникла подія OnActivate |
type TFormStyle = (fsNormal, fsMDIChild, fsMDIForm, fsStayOnTop) ; property FormStyle: TFormStyle; |
Визначає стиль вікна : fsNormal - звичайне вікно; fsMDIChild дочірнє MDI- вікно; fsMDIForm - рамкове MDI- вікно; fsStayOnTop - спливаюче вікно |
property HelpFile: String; |
Кожна форма може мати індивідуальний файл допомоги, ім'я якого містить цю властивість. Якщо ім'я не вказане, використовується файл допомоги застосування |
property Icon: TIcon; |
Містить значок вікна. Для головної форми ця властивість визначає також значок програми |
property KeyPreview: Boolean; |
Якщо має значення True, форма отримує події від клавіатури, перш ніж вони поступлять в елемент з фокусом введення |
property MDIChildCount: Integer; |
У рамковому MDI- вікні визначає кількість пов'язаних з ним дочірніх MDI - вікон |
property MDIChildren[N: Integer]: TForm; |
У рамковому MDI-вікні відкриває доступ до дочірнього вікна під номером N |
property Menu: TMainMenu; |
Містить головне меню вікна |
TModalResult = Low (Integer) .. High (Integer) ; property ModalResult: TModalResult; |
Для модального вікна містить результат діалога з користувачем |
property Monitor: TMonitor; |
Містить вказівку на монітор, на якому відображається вікно |
property PixelsPerlnch: Integer; |
Визначає роздільну здатність вікна в пікселах на один лінійний дюйм для етапу конструювання форми |
TPosition = (poDesigned, poDefault, poDefaultPosOnly, poDefaultSizeOnly, poScreenCenter) ; property Position: TPosition; |
Визначає положення і розміри вікна у момент його появи на екрані: poDesigned - такі ж, як на етапі конструювання вікна; poDefault - положення і розміри визначає Windows; poDefaultPosOnly - положення, як на етапі конструювання, розміри визначає Windows; poDefaultSizeOnly - розміри, як на етапі конструювання, положення визначає Windows; poScreenCenter - в центрі екрану з розмірами, як на етапі конструювання |
TPrintScale = (poNone, poProportional, poPrintToFit); property PrintScale: TPrintScale; |
Визначає масштабування вікна при його друці на принтері: poNone - немає масштабування; кожен піксел вікна відтворюється однією точкою на папері; poProportional - форма масштабується так, щоб її образ на папері був максимально схожий на її зображення на екрані; poPrintToFit - форма друкується з такими ж пропорціями, як на екрані, але з розмірами, що заповнюють аркуш паперу |
property Scaled: Boolean; |
Дозволяє/забороняє масштабувати форму, якщо значення її властивості PixelPerlnch відрізняється від поточного дозволу екрану |
TileMode = (tbHorizontal, tbVertical); property TileMode: TTileMode; |
Визначає стиль розташування дочірніх вікон MDI- застосування при їх впорядкуванні мозаїкою |
property TransparentColor: Boolean; |
Якщо містить значення True, властивість TransparentColorValue визначає колір прозорості форми, крізь який будуть видні вікна(тільки для Windows 2000 і вище), що пролягають нижче |
property TransparentColorValue: TColor; |
Містить колір прозорості форми(ігнорується, якщо TransparentColor=False) |
property WindowMenu: TMenuItem; |
Визначає пункт головного меню рамкового MDI- вікна, до якого додаються пункти меню дочірнього вікна |
TWindowState = (wsNormal, wsMinimized, wsMaximized); property WindowState: TWindowState; |
Визначає стан вікна у момент його появи на екрані: wsNormal - звичайне вікно; wsMinimized - згорнуто до кнопки; wsMaximized - розгорнуто на увесь екран |
