- •Що таке файл?
- •Коли і навіщо треба використати файли?
- •Як описати файлові змінні?
- •Як встановити зв'язок між файловою змінною і самим фалом?
- •Як створити, відкрити, зберегти і закрити файл?
- •Як використати або змінити вміст файлу?
- •Малюнок 1. Палітра візуальних компонент Delphi містить закладки сторінок, що організують компоненти у категорії.
- •Стандартні компоненти
- •40 1. Загальна характеристика
- •2. Управляючі кнопки Button і BitBtn
- •3. Кнопка з фіксацією SpcedButton
- •5. Індикатори CheckBox і CheckListBox
- •6. Повзунки і смуги прокрутки — компоненти TrackBar і ScrollBar
- •3.7.8 Таймер — компонент Timer
- •Інструментальна панель ToolBar.
- •PageScroller - прокручування сторінок
- •Список зображень - компонентів ImageList (панель Additional).
- •Смуга стану StatusBar.
Як використати або змінити вміст файлу?
Для того що б робити які-небудь внутрішні зміни в самому файлі так само існують команди
read(f, a, b); — читати з файлу f дві змінні a і b. Після виконання цієї процедури покажчик у файлі пересунеться за змінну b;
readln(f, a, b, c); — читати з файлу f три змінні a, b і c, а потім перекласти покажчик (курсор) на початок наступного рядка; якщо окрім вже лічених змінних в рядку містилося ще щось, то воно буде проігноровано.
write(f, a, b, c); — записати у файл f змінні a, b і c;
writeln(f, a, b); — записати у файл f змінні a і b, а потім записати туди ж символ "кінець рядка".
34 Графічний редактор Paint Графічний редактор Paint (мал. 12.23) призначений для створень,
редагування і проглядання растрових малюнків.
Текстові редактори Блокнот і WordPad
Програма Блокнот (мал. 12.24,а) є найпростішим текстовим редактором.
Він призначений для створення і редагування текстових документів формату
ANSI, тобто документів, що не мають форматування, а тільки "голий текст".
Такий формат мають багато службових файлів (AutoEXEC.BAT, файли
ініціалізації додатків з розширенням INI).
Калькулятор
Програма Калькулятор призначена для виконання в Стандартному режимі
(мал. 12.25,а) найпростіших арифметичних розрахунків і в інженерному режимі
(мал. 12.25 6) складніших статистичних розрахунків.
35WM_CLOSE – Сигналізує, що вікно або додаток закривається. Це повідомлення не має параметрів. За замовчуванням воно закриває вікно, якому послано. Якщо додаток обробляє це повідомлення, то воно повинно повертати нуль. При обробці цього повідомлення додаток може запитати користувача про необхідність закривати вікно або викликати функцію закривання вікна тільки при позитивній відповіді.
WM_ACTIVATE – Надсилається, коли вікно переводиться в активну або неактивний стан. Спочатку повідомлення надсилається вікна, яке переходить у неактивний стан, а потім – активованого. Це повідомлення має додаткові параметри
fActive = LOWORD(wParam); |
Прапор активації |
fMinimized = (BOOL) HIWORD(wParam); |
Прапор мінімізації (1 – якщо вікно мінімізовано, 0 – якщо ні) |
hwndPrevious = (HWND) lParam; |
Ідентифікатор вікна (Handle) |
Параметр fActive показує, як активізується або деактивується вікно. Можливі значення цього параметра:
WA_ACTIVE |
вікно активізується не клацанням миші (наприклад, функцією SetActiveWindow або клавіатурою) |
WA_CLICKACTIVE |
вікно активізується клацанням миші |
WA_INACTIVE |
вікно деактивується |
Параметр hwndPrevious – це дескриптор, який вказує на вікно, з якого фокус переключився на дане вікно, якщо воно активується, або на вікно, в яке передається управління, якщо дане вікно деактивується. За замовчуванням, якщо активована вікно не згорнуто, то воно отримує фокус. Якщо додаток обробляє це повідомлення, то воно повинно повертати нуль.
WM_GETMINMAXINFO – Надсилається при зміні розмірів чи положення вікна. Обробник події може використовуватися для обмеження допустимих розмірів і координат положення на екрані.
Визначення:
WM_GETMINMAXINFO lpmmi = (LPMINMAXINFO) lParam; // address of structure
Параметр lpmmi вказує на структуру типу MINMAXINFO, що містить прийняті за замовчуванням межі зміни розмірів і координат положення вікна. Опис цієї структури:
typedef struct tagMINMAXINFO { // mmi POINT ptReserved; POINT ptMaxSize; POINT ptMaxPosition; POINT ptMinTrackSize; POINT ptMaxTrackSize; } MINMAXINFO;
Поля структури означають наступне:
ptReserved |
Зарезервовано і поки не використовується |
ptMaxSize |
Поле типу Point визначає ширину (Point.x) і висоту (Point.y) розгорнутого вікна |
ptMaxPosition |
Поле типу Point визначає положення лівого (Point.x) і верхнього (Point.y) країв розгорнутого вікна |
ptMinTrackSize |
Поле типу Point визначає мінімальну ширину (Point.x) і мінімальну висоту (Point.y) вікна при зміні користувачем розмірів його рамки. |
ptMaxTrackSize |
Поле типу Point визначає максимальну ширину (Point.x) і максимальну висоту (Point.y) вікна при зміні користувачем розмірів його рамки. |
Якщо додаток обробляє це повідомлення, воно повинно повернути 0.
WM_COPYDATA – Надсилається, коли один додаток передає дані іншому додатку. Визначення: WM_COPYDATA
wParam = (WPARAM) (HWND) hwnd; |
Дескриптор посилаючої вікна |
lParam = (LPARAM) (PCOPYDATASTRUCT) pcds; |
покажчик на структуру з даними |
Параметр hwnd ідентифікує вікно, що посилає дані. Параметр pcds вказує на структуру типу COPYDATASTRUCT, що містить пересилаються дані. Опис цієї структури:
typedef struct tagCOPYDATASTRUCT
{Cds DWORD dwData; до 32 біт даних, переданих з додатком-одержувачу DWORD cbData; визначає розмір (в байтах) даних, на які вказує lpData PVOID lpData; покажчик на дані, що передаються з додатком-одержувачу } COPYDATASTRUCT;
Повертане додаток-приймач обробляє повідомлення, воно має повернути значення TRUE, в іншому випадку – FALSE.
36….
37 • Стандартна сторінка (Standart). Стандартна сторінка містить найбільш часто вживані компоненти, що фігурують у всіх програмах Windows. Ці компоненнти мають однозначний зв‘язок зі стандартними об‘єктами Windows. • Додаткова сторінка (Additional). Ця сторнка містить дещо більш специфічний набір компонентів, який ви, працюючи з базовими програмами Windows, могли й не зустріти. Компоненти цієї сторінки дуже корисні. Наприклад, такий компонент як MaskEdit дає вам кращій спосіб керування, ніж стандартний Edit. Крім того, тут містяться різноманітні, орієнтовані на графіку візуальні компоненти, такі як фігура (Shape) та образ (Image). • Win 95. На цій сторінці розташовані компоненти, що існують тільки в Windows 95 і яких не було в Windows 3.1. • Доступ до даних (Data Access). Ця сторінка містить компоненти, що дозволяють вам використовувати таблиці та запити. • Керування даними (Data Controls). На цій сторінці розміщена та частина інтерфейсу користувача, що пов‘язана з даними. Тут є компоненти, що дозволяють вам представляти дані користувачу будь-яким способом, прийнятим у Windows. • Win 3.1. Тут знаходяться застарілі компоненти Windows 3.1, які рідко використовуються, тому що в Windows 95 є більш потужні їхні відповідники. • Діалоги (Dialogs). На цій панелі ви знайдите діалогові панелі для виконання таких задач загального характеру, як відкриття файлу, установка принтера, пошук тексту, тощо. • Системна (System). Системна сторінка містить візуальні та невізуальні компоненти. Тут містяться компоненти для таймера, дисковода, компоненти доступу до файла, а також компоненти динамічного обміну даними — DDE (Dynamic Data Exchange) — та зв‘язку-вбудови об‘єктів — OLE (Object Linking and Embedding). • Швидкі звіти (QReport). Ця сторінка дозволяє швидко будувати різноманітні звіти по базам даних. • OCX. Ця панель містить такі компоненти як графік, графічний сервер, перевірка орфографії, тощо. • Приклади (Samples). Ця сторінка містить компоненти, що демонструють, як додавати власні компоненти до палітри. Стандартні компоненти. • Компонент MainMenu — це засіб для створення головного меню та підменю у вашій програмі. Щоб створити меню, додайте цей компонент до вашої форми і двічі клацніть на ньому. З‘явиться Menu Designer за допомогою якого можна легко дати назви пунктам меню та зв‘язати їх з відповідними процедурами обробки. • Компонент TPopupMenu — дозволяє створювати локальні меню у формі або будь-якому компоненті форми. Меню викликається натисненням правої кнопки мишки на відповідному компоненті. Щоб створити локальне меню, перенесіть його в вашу форму та зв‘яжіть характеристику PopupMenu компонента чи форми з відповідним локальним меню. Щоб задати пункти меню використовуйте Menu Designer. • Компонент TLabel — це елемент керування, що просто показує текст в формі. Як звичайно він пояснює який-не-будь інший елемент керування. Сам текст задається в характеристиці Caption. • TEdit. Використовуйте цей компонент для того, щоб отримати інформацію від користувача або вивести на екран потрібну інформацію. За те, що вводиться в компонент або виводиться на екран відповідає характеристика Text. • Компонент TMemo показує текст і дозволяє користувачу вводити текст як і TEdit. Але в TEdit можна вводити текст у декілька рядків. • Компонент TButton — це кнопка, що широко застосовується в діалогових вікнах. Процедура обробки задається в події OnClick. • TCheckBox дає користувачу вибір варіанту з двох можливостей (вкл., викл.). При цьому змінюється значення характеристики Checked. • Використовуйте TRadioButton для того щоб представити набір можливих значень, тільки одне з яких може бути вибрано. Коли користувач вибирає одну з можливостей, всі інші стають невибраними.
• TListBox показує список, з якого користувач може вибрати один чи більше пунктів. Сам список зберігається в характеристиці Items. Характеристика ItemIndex показує який пункт вибрано в даний момент. • TComboBox комбінує у собі TEdit та TListBox. Користувач може або ввести текст або вибрати один з запропонованих варіантів. В обох випадках змінюється значення характеристики Text. • TScrollBar використовується для прокрутки вмісту вікна, форми чи елементу керування. В процедурі обробки OnScroll, ви задаєте як саме вікно, форма чи елемент керування буде реагувати на скролінг. • TGroupBox використовується для групування залежних елементів керування. Найчастіше групують TRadioButtons. Помістіть group box в форму, а потім в нього занесіть інші компоненти. Текст, що пояснює призначення групи, задається в характеристиці Caption. • TRadioGroup - це група, що містить тільки radio buttons. Radio group спрощує створення групи radio buttons. • TPanel використовується для створення панелей, на яких будуть розташовані інші компоненти. Панелі можуть бути розташовані на формі так, щоб займати відносно те ж положення навіть якщо форма змінить розміри. Характеристика Align дає вам можливість вибрати конкретне вирівнювання.
38 Основні поняття
Компонент – це клас, що походить безпосередньо чи небезпосередньо з TComponent із спеціальними шляхами доступу до його даних, надрукованими властивостями та іншими рисами, що задовольняють вимоги Delphi до візуальних чи невізуальних компонент.
Візуальний компонент – це об”єкт з візуальним представленням під час виконання, такий як кнопка або текстовий коментар, що ви вставляєте у вікно форми. Візуальні компоненти можуть чи ні з”являтися на Палітрі Компонент.
Форма – це також компонент, що може містити об”єкти інших компонент.
Об”єкт компоненту – це інстанція компоненту, вставлена у форму.
Вступ
Програмування з візуальними компонентами легше ніж ловити рибу у ванні. Ви можете зробити великий ефект, затративши невеликі зусилля, і найголовніше – ви навіть не зіпрієте.
Візуальний компонент – це один з об”єктів, таких як кнопка або текстовий коментар, що ви вставляєте у вікно форми. Насправді, форма також є компонентом – таким, що може містити інші об”єкти компонентів. При розробці додатків в Delphi ви витрачаєте більшість свого часу, вставляючи та модифікуючи об”єкти візуальних компонент, отже, необхідно зрозуміти їх як слід. Візуальні компоненти – це свого роду будівельні блоки, на яких примощується фундамент вашого коду.
Бібліотека візуальних компонент
З бібліотекою візуальних компонент Delphi (VCL) ви зможете створювати корисні додатки лише з домішками програмування. Краще за будь-які слова це підтвердить розробка додатку-прикладу на цій лекції.
Категорії візуальних компонент
Для того, щоб вибрати категорію компонент, натисніть закладку сторінки, наприклад Dialogs, внизу Палітри Компонент Delphi (мал.1). Таблиця 1 перераховує та описує катугорії усіх візуальних компонент Delphi. Порядок та кількість катугорій на вашому екрані може відрізнятися залежно від опцій інсталяції, або ж встановлених додаткових компонент, або ж ви використали Options|Environment, щоб впорядкувати значки на палітрі.
