VISUAL BASIC 6 p>
Глава 1. ТЕХНОЛОГІЯ ПРОГРАМУВАННЯ НА VISUAL BASIC 4 В СЕРЕДОВИЩІ WINDOWS
1. 1. ЕКРАННІ ЕЛЕМЕНТИ
Після запуску Visual Basic на екрані з'являються такі вікна (рис 1 1) ' p>
. основне вікно зверху екрану Miciosoft Visual Basic Project 1 (design), що містить головне меню та панель інструментів (Toolbar); p>
. вікно форми в центрі із заголовком Form; p>
. вікно шаблонів (palett windows) або інструментів (Toolbox) ліворуч від форми; p>
. вікно властивостей (Properties) зверху справа; p>
. вікно проекту (Project 1) знизу праворуч
Рис 1 1
1. 1. 1. Основне вікно
Головне меню головного вікна містить стандартні для Windows меню Файл
(File), Правка (Edit), Вид (View) і меню власне Visual Basic Вставка
(Insert), Виконати (Run), Tools (Засоби), Add-in (Додатки), (Help) p>
Файл (File) - команди для відкриття, збереження, друку та компіляції проекту Visual Basic p>
Правка (Edit) - команди редагування. p>
Вид (View) - команди перегляду компонентів Visual Basic p>
Вставка (Insert) - команди для додавання в проект нових форм і модулів
Виконати (Run) - команди для виконання і компіляції проекту p>
Tools (Засоби) - команди для конфігурації середовища програмування Visual Basic p>
Add-in (Додатки) - додаткові кошти для розширення можливостей Visual Basic
(Help) - доступ до довідкового керівництва Панель інструментів (Toolbar)основного вікна містить кнопки-піктограми для швидкого виклику частовикористовуваних команд (рис 1 2)
p>
Опції піктограм (зліва направо) такі-створити форму (New Form); створити модуль (New Module); відкрити проект (Open Project); зберегти проект (Save Project), блокування елементів управління на формі (Lock contro s),редактор меню (Menu Editor), властивості (Properties Windows), переглядоб'єктів (Object Browser), проект (Project);старт (Start),перервати виконання (Break);поставити/прибрати точку переривання (BieakPoint), • негайний перегляд
(Instant Watch); p>
. виклики (Calls); p>
. послідовне виконання (Single Step); p>
. виконання за процедурами (Procedure Step).
Кнопки створення форми (New Form), створення модуля (New Module), відкриттяпроекту (Open Project), збереження проекту (Save Project) дозволяють створитиновий або відкрити існуючий проект (єдиний програмний комплекс), ввестив нього нові діалогові вікна (форми) і зберегти проект на диску звнесеними змінами.
Кнопка блокування елементів управління на формі (Lock controls) дозволяєзафіксувати положення елементів управління на формі.
Кнопка редактора меню (Menu Editor) використовується для створенняпризначеного для користувача меню проекту та визначення його властивостей.
Рис 1 3
Кнопка властивостей (Properties Windows) використовується для виведення вікна зі спискомвластивостей та їх значень для форми та елементів управління.
Кнопка перегляду об'єктів (Object Browser) виводить вікно, в якому можнадля вибраного підмножини Visual Basic абопроекту отримати список його компонентів або модулів і відносяться до кожногоз них список методів і властивостей (рис. 1.3). Для вибраних елементів спискувиводиться коротка анотація і можна отримати розгорнуту довідку.
Кнопка проекту (Project) активізує вікно проекту. Кнопки "Старт" (Start),
"Відмінити виконання" (Break), "Кінець виконання" (End), "Поставити/прибратиточку переривання "(Breakpoint)," Негайне перегляд "(Instant Watch),
"Виклики" (Calls), "Покрокове виконання" (Single Step), "Виконання попроцедур "(Procedure Step) використовуються при налагодженні програм.
Вікно проекту (рис. 1.4) містить список всіх файлів, необхідних длявиконання створюваної програми. Назва Forml.frm присвоюється за замовчуваннямперший діалоговій формі проекту (це ім'я можна змінити або зберегти дляподальшого використання). Цей файл містить опис форми, елементівуправління (кнопок, текстових вікон тощо) і текст програм, пов'язаних зцими елементами.
Файл спеціальних засобів управління має розширення. ОСГ або-ВСХ імістить кнопки з мультиплікацією, тривимірні засоби керування і т.п.
Зазвичай зберігається в каталозі WINDOWS/SYSTEM, і його можна використовувати врізних проектах.
Файл стандартних модулів має розширення. BAS і містить текст програм.
Файл модулів класів має розширення. CLS і містить визначення класів.
Файл ресурсів має розширення. RES і містить дані для проекту
(текстові рядки, бітові образи та ін.)
Файл проекту має розширення. VBP або. МАК і містить шляху призначення
(диски і каталоги) та імена всіх перерахованих файлів проекту.
Файл проекту може бути відкомпілювати з метою отримання виконавчого файлупрограми з розширенням. ЕХЕ. У вікні проекту є також дві кнопки: View
Form (Перегляд форми) і View Code (Перегляд коду). За замовчуванням Visual
Basic при виборі будь-якого файлу проекту показує форму (див. рис. 1.1сзагальним екраном Visual Basic).
При натисканні на кнопці View Code (Перегляд коду) відкривається вікно коду
(тексту програми), що відноситься до даної формі (заголовок
Forml.frm) і заданим на ній діалоговим елементів. Вікно (рис. 1.5)містить розкриваються вікна Object і Ргос і поле для запису програми. Упершому вікні знаходиться список діалогових елементів форми, включаючи саму форму
(Form). Друге містить список процедур обробки подій, що відносяться доданого діалогового елементу форми (у цьому випадку до самої формі
- Form).
Рис 1 5
Кожному діалогового елементу в Visual Basic поставлено у відповідністьпевний набір подій (ці події перераховані у спадному меню:
Load, LostFokus та ін), що відбуваються в період виконання програми.
Наприклад, подія Load (Завантаження) відбувається при завантаженні форми, подія
Clik (Клацання) викликається натисканням кнопки миші, подія DblClick (Подвійнийклацання) викликається подвійним натисканням кнопки миші і т.д.
У свою чергу, події ставиться у відповідність процедура обробки події
(процедура (procedure) в мовах програмування складається з наборуоператорів, які виконуються при виклику процедури). Тобто подія можевикликати програмований зміна даних. Visual Basic містить заготовкитаких процедур в поле для запису програми, що відповідають виділеномуподії (рядки Sub Form_Load () і End визначають першим іостанній оператори процедури обробки події Load (Завантаження)). У полівведення тексту програми автоматично формується заголовок процедури ікінцевий оператор. Назва процедури формується автоматично і складається здвох частин, розділених підкресленням: ім'я виділеного діалоговогоелемента і ім'я виділеного події (рядки Sub Form_Load () і Endвизначають перший і останній оператори процедури обробки події Load
(Завантаження)).
1.1.3. Вікно шаблонів або інструментів
Перевагою GUI є те, що є стандартний набір об'єктівдіалогу (вікна, кнопки, лінійки прокрутки і т.д.), що дозволяє створитистандартний Windows інтерфейс програмованої системи. Діалогові елементипрограмної системи створюються на основі стандартних шаблонів абоінструментів, які вибираються з вікна шаблонів або інструментів
(Toolbox) і розміщуються у формі.
Є наступні основні елементи управління (інструментальні засоби):
Покажчик (Pointer) не є інструментальним засобом. Використовуєтьсядля переміщення або зміни розмірів поміщених на форму елементівуправління.
Зображення або картинка (Picture Box) використовується для показу на форміграфічних об'єктів (статичних або динамічних), які виходять здопомогою графічних методів.
Мітка (Label) використовується для виведення тексту, який не повинен змінюватисякористувачем (наприклад, заголовок будь-якого об'єкта управління).
Текстове вікно (Text Box) використовується для введення, виведення та редагуваннякористувачем текстової (символьної) рядка інформації.
Рамка (Frame) використовується для функціональної або візуальної угруповання
(виділення) елементів управління. Для того, щоб згрупувати елементиуправління, спочатку на формі розміщується рамка, а потім всередині неїрозміщуються елементи
Командна кнопка (Command Button) використовується для введення командикористувачем.
Прапорець (Check Box) використовується в тих випадках, коли користувач повиненвибрати або відзначити на формі деякий умова (так чи ні). Умов,які позначаються прапорцями на формі, може бути декілька, і вони можутьвиконуватися одночасно (тобто кілька прапорців на формі може бути по -мечено одночасно).
Перемикач (Option Button) використовується в тих випадках, коликористувач повинен вибрати або відзначити на формі деякий умова (так чинемає). Умов, які позначаються перемикачами на формі, може бутидекілька і тільки одна з них може бути вибрано (тобто якщо одна умова,заданий перемикачем, обрано або зазначено, то інші перемикачі наформі не помічені або не вибрані).
Комбінований список (Combo Box) є комбінацією списку (див. нижче) ітекстового вікна. Використовується для виведення в спеціальному вікні (списку)кілька рядків текстової (символьної) інформації, з яких користувачможе вибрати одну або кілька, а також для введення і редагуваннякористувачем текстової (символьної) рядка інформації.
Список (List Box) використовується для виведення в спеціальному вікні декількохрядків текстової (символьної) інформації, з яких користувач можевибрати одну або декілька. Якщо в списку міститься більше елементів, ніжможе одночасно бути показано у вікні, можлива прокрутка списку.
Горизонтальна лінійка прокрутки (Horizontal Scroll Bar) використовується дляшвидкого руху по довгих списках чи рядках і відображення поточногоположення в списку або рядку і збільшення швидкості прокручування списку.
Вертикальна лінійка прокрутки (Vertical Scroll Bar) аналогічнагоризонтальній лінійці прокручування.
Таймер (Timer) використовується для завдання моментів (інтервалів) часу, вяких повинні відбутися будь-які події. Цей елемент управлінняневидимий на формі під час виконання ппіложенія.
p>
Список дисків (Drive List Box) використовується для ото-браженіяі вибору, що є в системі дисків.
Список каталогів (Directory List Box) використовується для відображенняієрархічного списку каталогів в корис-нізації системі.
Список файлів (File List Box) використовується для відображення списку файлів впризначеної для користувача систему і управління ними (відкриття, видалення, збереження іін).
Форма (Shape) використовується для відображення простих фігур (прямокутник,коло, еліпс) на формі на етапі проектування форми.
Лінія (Line) використовується для відображення ліній різного виду на формі наетапі проектування форми.
Зображення (Image) використовується для відображення на формі растровихграфічних зображень, іконок або метафайлів. Ці зображення можуть бутитільки декоративними і вимагають менше ресурсів комп'ютера, ніж Picture Box
Сетка (Grid) представляє собою таблицю даних, що складається з колонок аборядків. Положення даного конкретного визначається координатою рядки істовпця, на перетині яких воно знаходиться
OLE 2 0 реалізує технологію Microsoft OLE (object linking and embending --зв'язок і впровадження об'єктів) і дозволяє створювати в програмі об'єкт,що містить дані з іншої зовнішньої програми (програми), наприклад зелектронної таблиці Excel Технологія OLE забезпечує зв'язок із зовнішнімдодатком (при зміні даних у джерелі автоматично оновлюютьсядані в програмі на Visual Basic)
Елемент дані (Data) дозволяє отримати доступ до конкретної інформації вбазі даних
Стандартне діалогове вікно (Common Dialog) включає набір діалогових вікон,реалізують стандартні і часто використовувані функції Windows (відкрити,зберегти як идр)
Крім перерахованих є інші елементи управління, відомості про якихможна отримати у вбудованій довідковій системі Visual Basic і якіможна додавати до наведеного основним списком
1.1.4. Вікно властивостей
Кожен шаблон (інструмент) і сама форма мають набір специфічнихвластивостей, параметри яких визначають їхній зовнішній вигляд і поведінку під час роботипрограми Список параметрів і їх значень визначаються у вікні властивостей (рис
1 6)
Розкривний список об'єктів у верхній частині містить імена і типиоб'єктів (шаблонів), поміщених на форму, а також самої форми (Form] - ім'яформи, Form - тип) Спочатку список містить тільки форму, кожен новийшаблон, що поміщається на форму, включається до списку
Для фіксованого елемента списку об'єктів виводиться список властивостей і їхзначень (на рис 1 6 Список властивостей для форми) Значення виділеногопідсвічуванням властивості можна змінювати Якщо значення має набір альтернатив,то активізується стрілка розкривного списку можливих значень.
Наприклад, властивість Enabled (Доступно) має два альтернативних параметра '
True та False
На закінчення відзначимо, що середу Visual Basic можна налаштувати відповіднодо переваг користувача (пункт головного меню Tool і далі пунктирозкривного меню Environment Options .., Project Options .., Format
Options ...).< br>Рис 16
1.2. Приклад розробки програми
Створення будь-якої програмної системи (проекту) на Visuai Basic складається знаступних етапів " p>
. створення інтерфейсу (створення вікна діалогу та розміщення в ньому елементів управління), p>
. встановлення параметрів (властивостей) елементів управління; p>
. введення тексту програм та їх налагодження; p>
. збереження проекту в зручному для подальшого використання вигляді
Розглянемо реалізацію цих етапів на прикладі простого проекту дляперетворення значень температури за Цельсієм в значення за Фаренгейтом інавпаки Перетворення здійснюється відповідно за формулами
F = (C * 9/5) +32, C = (F-32) * 5/9
Інтерфейс користувача показаний на рис 1 7
При введенні значення температури за Цельсієм (вікно Celsius) і натиснути клавішу
Введення (Enter) у вікні Fahreheit виводиться значення за Фаренгейтом.
При аналогічному введенні значення за Фаренгейтом виводиться значення за Цельсієм.
Проект включає: p>
. форми (фон, Windows, діалогові вікна); p>
. елементи керування ((графічні об'єкти, розміщені на форму); p>
. програмний код (процедури і оголошення).
Рис. 1.7
Під час запуску Visual Basic за замовчуванням відкривається новий проект з ім'ям
Project 1 і водночас ставиться до нього форма Formi (рис. 1.8). На формі розмістимоелементи управління: два текстових вікна та дві мітки, використовуючи вікношаблонів.
Поставити елементи управління можна двома способами: p>
1. Клацніть мишею на потрібному елементі вікна шаблонів (стрілка перетворюється на "+"), перенесіть покажчик у верхній лівий кут форми, натиснувши і не відпускаючи кнопку миші перемістіть покажчик вправо і вниз форми, відпустіть кнопку миші. На формі у верхньому лівому куті створюється вибраний елемент управління відповідного переміщенню розміру. P>
2. Двічі клацнути мишею на потрібному елементі вікна шаблонів. При цьому створюється елемент керування з розмірами за умовчанням в центрі форми. P>
Виберемо зазначеними способами два текстових вікна і розмістимо їх на формі (рис. 1.9). P>
Активний в даний момент елемент позначений маркерами (клацанням миші елемент робиться активним) і його можна переміщати мишею і змінювати його розміри. Це дозволяє відредагувати розмір і положення керуючих елементів на формі відповідно бажанням розробника. Після введення всіх елементів і редагування форма приймає вигляд, показаний на рис. 1.10. P>
За замовчуванням послідовно вводиться однаковим елементам присвоюються однакові імена, що відрізняються останньою цифрою p>
(текстових вікон послідовно ппісваівают-ся імена Textl і Textl, матюками послідовно присвоюються імена p> < p> Label! і Label2).
Рис. 1.8
Визначимо тепер властивості введених елементів, використовуючи вікно властивостей
(Properrties). Активізуємо елемент Label], при цьому активізуютьсявластивості у вікні властивостей, що відносяться до цього елементу (заголовок Labell
Label). Виберемо властивість Caption (Назва) і визначимо його як Celsiu,використовуючи рядок введення. Ця назва з'являється на формі (рис. 1.11).
Властивість Caption (Назва) для Label2 задамо Fahrenheit. Рештазалишимо за замовчуванням.
Визначимо властивості тестових вікон. Активізуємо спочатку перше вікно, очистимовікно (видалимо значення Textl властивості Text) і призначимо йому ім'я txtCels
(властивість Name (Ім'я), яке будемо використовувати при написанні текступрограм (рис. 1.12). Очистимо також друге вікно і призначимо йому ім'я ixtFahr.
Інші властивості обох вікон залишимо за замовчуванням.
Рис 111
Для введення тексту необхідних програм клацніть на кнопці View Codeвікна "проекти" (вікно Piojektl mak) Відкриється вікно FORM1 (ім'я проектованоїформи за умовчанням Formi) Відкриємо ліворуч список, що розкривається Object івиберемо в ньому об'єкт txtCels (як об'єкт вибирається верхнєтекстове вікно форми, раніше для цього було задано ім'я txtCels)
Відкриємо справа список, що розкривається Ргос і виберемо процедуру обробкиподії Keypress (натискання клавіші) У полі форми з'являються перші іостання рядки процедури Назва процедури txtCels_KeyPress формуєтьсяавтоматично (перша частина імені визначається вибраним елементом
- Верхнім текстовим вікном, другі - ім'ям вибраної процедури обробкиподії) Параметром процедури є значення кодунатиснутою клавіші
(KeyAscii), визначене як цілий тип (Integer) (рис 1 13)
Введемо тепер необхідні оператори процедури (рис 1 14) При натисканніклавіші Enter, ASCII-код якої дорівнює 13 (коментар у текстіпрограми), обчислюється значення температури за Фаренгейтом по введеному ввікні значенням температури за Цельсієм і значення обчисленої температурививодиться в іншому вікні
Рис 1 12
Рис 1 13
Функція val перетворить текстовий рядок в числове значення Складовіімена txtFahr Text і txtCels Text пов'язані з включенням до Visual Basic так.званих методів для об'єктів (форм і командних кнопок) Введемо такожопису змінних tem_Cels і tem_Fahr до розділу загальних (general) описі,що робить їх доступними для обох процедур
Форма і програми обробки подій підготовлені Тепер, клацнувши мишею накнопці Run панелі інструментів головного меню, проект можна відправити навиконання З'являється спроектована форма, у вікнах якої можна вводитиінформацію (рис 1 15) Крім введення і виведення інформації, форма відповідаєстандарту Windows додатків (реагує на кнопки мінімізації тамаксимізації, змінює розміри та ін)
Клацніть на кнопці Кінець виконання панелі інструментів головного менюзавершує виконання проекту
Налагоджений проект можна зберегти двома способами • використовуючи команду Save
Project або Save Project as ... розкривного меню File головного меню; p>
. використовуючи команду Make EXE File розкривного меню File головного меню.
Рис 1 14
У першому випадку виконати проект можна тільки після запуску Visual Basic.
У другому випадку програми проекту компілюються і створюється ЕХЕ-файл,дозволяє виконати проект автономно без запуску Visual Basic, навіть якщона комп'ютері не встановлено Visual Basic.
При виконанні команди Save Project as ... з'являється вікно (рис. 1.16),дозволяє задати директорію для зберігання і ім'я проекту (проектзберігається в директорії C: VB під ім'ям temper, mak).
При виконанні команди Make EXE File з'являється вікно (рис. 1.17),дозволяє задати директорію для зберігання ЕХЕ-файла і його ім'я (EXE-файлзберігається в директорії C: VB під ім'ям temper.exe).
Рис 1 15
При натисканні на кнопку "Options ..." з'являється спеціальне вікно (рис. 1.18)для завдання необхідної інформації по готовому додатком (номер версії,інформація про компанії-розробника, ім'я створеного додатки (TEMPER),іконка для форми та ін.)
Рис 1 16
Програма на будь-якій мові програмування перед виконанням перекладається намашинний мова (набір команд процесора) спеціальними програмамиперекладачами. Ці програми принципово поділяються на компілятори
(compilers) та інтерпретатори (interpreters). Перші транслюють всюпрограму цілком і створюють закінчений програмний модуль на машинномумовою Другі транслюють одноразово тільки один рядок програми намовою програмування і відразу ж
Рис 1 17
Рис 1 18виконують отриманий фрагмент програми на машинній мові. Даліінтерпретатор повертається до наступного рядка програми мовоюпрограмування, транслює її і т. д
Visual Basic відноситься до мов програмування інтерпретує типу p>
1.3. НАЛАГОДЖЕННЯ ПРОГРАМ
Будь-яка програма, написана навіть кваліфікованим програмістом, міститьпомилки, які виявляються і виправляються в процесі налагодження програми
Крім того, при роботі з налагодженою програмою користувач може створитиситуацію, що програмою не обробляється коректно Розглянемо процесналагодження програм і способи обробки помилок при виконанні програми танаявні для цього кошти в Visual Basic
1.3.1. Синтаксичний контроль
При помилку в наборі тексту програми у вікні коду автоматично (приактивізації в діалоговому вікні Environment Options (Параметри Середовища) прапорця
Display Syntax Errors (Показувати синтаксичні помилки)) інверсноїпідсвічуванням виділяється неправильний фрагмент оператора програми На цьомуетапі Visual Basic відстежує синтаксичні помилки (неправильнонаписані ключові слова, невірний порядок операндів в операторах,некоректну пунктуацію і т п)
Зайва крапка в операторі вже наведеної вище дії автоматичнопоказується з роз'ясненням помилки у вікні
Рис 1 19 Виклик діалогового вікна Environment Options (Параметри Середовища)проводиться з пункту Tools Головного меню. Вікно показано на рис. 1.20 ідозволяє, крім вказівки на видачу синтаксичних помилок, визначитививодяться вікна середовища (Toolbox, Properties, Project, Debag), задатиобов'язковість оголошення змінних (Require Variable Declaration), показусітки форми (Show Grid) та її крок (Width, Height), вирівнювання елементівуправління щодо сітки (Align Controls to Grid), автоматичногозбереження поточних версій файлів форм і проекту перед кожним запускомпрограми (Save Before Run).
1.3.2. Контроль коректності алгоритму
Для подальшого налагодження синтаксично правильної програми існуютьспеціальні засоби, що дозволяють контролювати значення змінних нарізних етапах виконання програми. Вікно Debug є основнимзасобом для пошуку помилок (рис. 1.21). У верхньому полі вікна виводяться виглядвираження (колонка Expression), значення виразу (колонка Value),місцезнаходження виразу (колонка Context). Кнопки Immediate і Watchзабезпечують перемикання на перегляд відповідно безпосередньовводиться в цьому полі виразу (прямий введення виразу) або вже заданого.
У нижньому полі відображається текст програми.
Вид вираження задається у вікні Add Watch (відкривається з пункту Tool Головногоменю) (рис. 1.22). Розкриваються списки модулів (Module) і процедур
(Procedure) дозволяють задати місце розташування вираження в програмі.
Вираз може бути набрано вручну в текстовому вікні. Крім того, якщо втексті програми перед викликом вікна виділений будь-якої оператор або йогочастину, то воно автоматично з'являється у вікні (див. рис. 1.22).
Кнопки в області Watch Type визначають умови виведення виразу (Watch
Expression - спостереження за значенням в точках переривання; Break When Value
Is True - переривання виконання програми, коли значення виразу однозаданому; Break When Value Changes - переривання виконання програми,коли значення виразу змінюється).
Рис. 1.22 Для виведення у вікно Debug потрібно також встановити точки переривання
(моменти, коли програма припиняє роботу і видає необхідну інформацію ввікно Debug). Зазвичай такими точками є місця програми, що перевіряються накоректність роботи.
Для установки точки переривання потрібно: p>
. встановити курсор або виділити відповідний оператор програми; p>
. клацнути мишею по пункту Toggle Breakpoint (Поставити крапку переривання) розкривного меню Run (Старт) Головного меню.
Встановлена точка переривання виділиться підсвічуванням (рис. 1.23).
Після запуску програми значення перевіряється виразу виводиться у вікні
Debug (рис. 1.24.). Оператор переривання виділяється рамкою, у вікнівказується місце переривання (проект, форма, процедура обробки події).
Видалити точку переривання можна клацнувши мишею по пункту Clear Toggle
Breakpoint (Прибрати точку переривання) розкривного меню Run (Старт)
Головного меню.
При налагодженню програм доцільно комбінувати постановку точокпереривання і точок спостереження (їх встановлення задається кнопками Break When
Value Is True (Переривання виконання програми, коли значення виразуодно заданому) і Break When Value Changes (Переривання виконанняпрограми, коли значення виразу змінюється) вікна Add Watch). Точкиспостереження уповільнюють виконання програми. Краще встановити точкупереривання в підозрілий місці програми і виконувати програму знормальною швидкістю до цієї точки. Далі поставити одну або кількаточок спостереження і продовжувати більш повільний пошук помилок в локалізованоїобласті програми.
Якщо не потрібно простежувати зміна значення якої-небудьзмінної в процесі виконання програми, то для виведення поточного значеннязамість використання вікна Add Watch можна використовувати пункт меню Instant
Watch (Швидкий перегляд) розкривного меню Tool Головного меню. Передцим, після переривання виконання програми, необхідно виділити зміннуу вікні коду. У вікні Instant Watch (рис. 1.25.) Виводиться ім'я змінної,поточне значення та ім'я процедури, в якій використовується змінна.
Клацанням миші по кнопці Add змінну можна додати до списку вікна Debug
Windows.
Кнопка Immediate вікна Debug (рис. 1.26) дозволяє вивести змінну наформу або змінити її значення за допомогою оператора присвоєння (цізміни не позначаються на змісті програми). Це вікно можна такожвикористовувати для введення команд, що змінюють властивості елементів управління
(шрифти, кольори фону та ін.) Змінені значення виводяться у вікні Debug (мал.
1.27).
Якщо проект включає багато процедур, то корисним засобом налагодження єтрасування виклику процедур (пункт меню Call ... розкривного меню Tool
Головного меню або однойменна кнопка панелі інструментів). Вікно (мал.
1.28.) Показує всю послідовність викликів від вихідної процедури допоточної (у верхній частині розташована остання викликана процедура, внижній - перша). Список дозволяє визначити, як відбувся перехід впоточну точку програми.
Рис. 1.25
Рис. 1.27
Рис. 1.28
Ефективним засобом налагодження є також послідовне виконання програмиі спостереження результатів виконання кожного оператора. Після припиненнявиконання програми (точки переривання або кнопка Break) необхідно увійти ввікно редагування коду. Для виконання одного оператора використовуєтьсяклавіша F8. При цьому буде виконаний оператор, виділений рамкою, авьщеленіе буде перенесено на наступний оператор. Повторюючи натиснення клавіші,можна здійснювати послідовне виконання програми.
Якщо поточний оператор містить виклик процедури, натискання клавіші F8, щигликмиші по пункту Step Into (Крок всередину) розкривного меню Run або клацаннямиші по піктограмі Step Into Головного меню викличе виконання першогооператора процедури, яку можна продовжувати виконувати по кроках.
Для виконання всієї процедури (не по кроках) і переходу до оператора,наступному за викликом процедури, використовується клік мишею по пункту Step
Over (Обійти) або комбінація клавіш Shift + F8.
При покроковому виконанні деякий блок операторів можна обійти. Це можназробити, встановивши курсор на оператор, на якому необхідно виконатинаступне переривання виконання програми, і клацнувши мишею по пункту меню
Step Те Cursor або комбінацією клавіш Ctrl + F8.
Покрокове виконання можна комбінувати з процедурних виконанням.
Налагоджені процедури однієї програми можна виконувати по процедурно, а неналагоджені - крок за кроком. Засоби налагодження дозволяють також змінювати порядоквиконання операторів. При виконанні оператора Set Next Statement
(Встановити наступний оператор) розкривного меню Run можна перейти довиконання будь-якого оператора (навіть до тих, які розташовані перед поточним)поточної процедури.
1.3.3. Контроль помилок на етапі виконання програми
Помилки періоду виконання (runtime errors) можуть виникати, наприклад, черезнестачі пам'яті або дискового простору, спроби відкрити відкритий іншимдодатком файл, виходу індексу за межі розмірності масиву та інцьому випадку Visual Basic виводить діалогове вікно з відповіднимповідомленням і припиняє виконання програми (рис. 1.29).
Оброблювач помилок повертає значення коду помилки (функція Err), списокяких знаходиться в довідковій системі (Help) і документації до Visual
Basic.
Однак такі помилки можна обробляти методом перехоплення помилок (errortrapping). Перехоплення помилок забезпечується вставкою в текст процедуриоператора
On Error GoTo мітка, де мітка позначає місце входу в обробник помилок.
Якщо в період виконання помилка виникне в одному з операторів процедури,розташованих за On Error GoTo мітка, то управління передається обробниковіпомилок, вказаною міткою. Ділянка обробки помилок можна закінчитиоператором On Error GoTo 0.
Рис. 1.29
У обробник помилок можна включити оператор Resume і продовжити виконанняпрограми після виправлення помилки операторами, що вставляються в обробникпомилок. Оператор Resume має кілька форм:
Resume відновлює виконання програми з оператора, який викликав помилку;
Resume 'Next відновлює виконання програми з наступного оператора;
Resume мітка відновлює виконання програми з оператора, поміченогоміткою.
Приклад.
У прикладі у процедурі Primer відбувається поділ на О (оператор YY = YY/XX,перед виконанням якого зміною XX присвоюється значення 0). Цейоператор включений в область обробника помилок. При поділі на 0 відбуваєтьсяперехід на оператор, позначений міткою Label: (обробник помилок),змінної XX присвоюється значення 2 і програма продовжує виконання зоператора, на якому була помилка на етапі виконання в результаті діленняна 0. Програма закінчує роботу і результат роздруковується на формі
(рис. 1.30).
Рис. 1.30
Таблиця 2.1
| Назва | Для яких | Опис | Возм |
| властивості | елементів | дії | жность |
| | Управління | | ізмнені |
| | Використовується | | я |
| Action | Common dialog | Визначає | -/+ |
| | | Тип діалогу | |
| Action | OLE | Визначає | -/+ |
| (OLE) | | тип дії | |
| Alignment | Check box. | Визначає | +/- |
| | Label, option | спосіб | |
| | Button, text | вирівнювання | |
| | Box | (по лівому | |
| | | Краю, за | |
| | | Правому чи | |
| | | По центру) | |
| Auto Redraw | Form, picture | Визначає | +/- |
| | Box | можливість | |
| | | Автоматично | |
| | | Го | |
| | | Перерісованія | |
| AutoSize | Label, picture | Визначає | +/- |
| | Box | можливість | |
| | | Автоматично | |
| | | Го зміни | |
| | | Розміру при | |
| | | Заповнення | |
| BackColor, | Form, check | Визначають | +/+ |
| Fore Color | box, combo | відповідно | |
| | Box, command | про колір фону та | |
| | Button | колір | |
| | (TWibKoBackCol | виводиться | |
| | Or) data | ін4юрмаціі | |
| | Control, | | |
| | Directory list | | |
| | Box, drive | | |
| | List box, file | | |
| | List box, | | |
| | Frame, grid, | | |
| | Label, list | | |
| | Box, OLE | | |
| | Control, | | |
| | Option button, | | |
| | Picture box, | | |
| | Printer object | | |
| | (Тільки | | |
| | ForeColor), | | |
| | Shape (тільки | | |
| | BackColor), | | |
| | Text box | | |
| BackStyle | Label, shape | Визначає | +/+ |
| | | Прозорість | |
| | | Фону | |
| BorderColor | Line, shape | Визначає | +/+ |
| | | Колір рамки | |
| BorderStyle | Form, grid, | Визначає | Для |
| | Image, label, | вид рамки | Form та |
| | Line, OLE | | text |
| | Control, | | box +/-+|< br>| | Picture box, | |/+ |
| | Shape, text | | |
| | Box | | | p>
Продовження табл 2 I
| Назва | Для яких | Опис | Возможн |
| властивості | елементів | дії | ость |
| | Управління | | змінено |
| | Використовується | | ия |
| BorderWidth | Line, shape | Визначає | +/+ |
| | | Ширину | |
| | | Кордону | |
| Cancel | Command button | Визначає, | +/+ |
| | | Що елемент | |
| | | Виконує | |
| | | Функцію | |
| | | Cancel на | |
| | | Формі | |
| Caption | Form, MDI | Визначає | +/+ |
| | Form, check | текст, | |
| | Box, command | виведений на | |
| | Button, data | елемент або | |
| | Control, | біля нього | |
| | Frame, label, | Для форми | |
| | Menu, option |-заголовок | |
| | Button | | |
| CellSelecte | Grid | Осередок | -/- |
| d | | таблиці | |
| | | Виділена | |
| | | Рядком і | |
| | | Стовпцем | |
| Class | OLE control | Визначає | +/- |
| | | Клас об'єкта | |
| | | OLE | |
| ClipControl | Form, frame, | Визначає | +/+ |
| s | picture box | необхідність | |
| | | Перемальовування | |
| | | Всього об'єкту | |
| | | Або | |
| | | З'являється | |
| | | Частини | |
| Clip | Grid | Визначає | -/+ |
| | | Вміст | |
| | | Виділених | |
| | | Елементів таблиці | |
| Col, Row | Grid | Визначає | -/+ |
| | | Виділену | |
| | | Колонку або | |
| | | Строкуа | |
| | | Таблиці | |
| ColAlignmen | Grid | Вирівнювання | -/+ |
| t | | даних у | |
| | | Колонці | |
| | | Таблиці | |
| Cols, Rows | Grid | Визначає | +/+ |
| | | Число | |
| | | Колонок, стовп | |
| | | Цов таблиці | |
| Columns | List box | Визначає | +/+ |
| | | Число колонок | |
| | | У списку | |
| ColWidth | Grid | Ширина | -/+ |
| | | Колонки | |
| ControlBox | Form | Визначає | +/- |
| | | Наявність | |
| | | Кнопки | |
| | | Системного | |
| | | Меню на формі | |
| CuncntX, | Form, picture | Поточні | -/+ |
| CurrentY | box, Printer | координати | |
| | Object | горизонталі і | |
| | | Вертикалі | |
| | | (Для змальовують | |
| | | Або | |
| | | Друкувальних | |
| | | Методів) | | p>
Продовження табл. 2.1
| Назва | управління | | жность |
| властивості | використовується | | змінено |
| | | | Ия |
| DatabaseName | Data control | Ім'я та | +/+ |
| | | Розташування | |
| | | Бази даних | |
| DataChanged | Check box, | Покажчик | -/+ |
| | Image, label, | зміни | |
| | Picture box, | даних у | |
| | Text box | елементі при | |
| | | Читанні записи | |
| | | (Розбіжність | |
| | |) | |
| DataField | Check box. | Визначає | +/+ |
| | Image, box | зв'язок | |
| | | З полем | |
| | | Запису файлу | |
| | Check box, | Визначає | +/- |
| | Image, label, | джерело | |
| | Picture box, | даних для | |
| | Text box | елемента | |
| | | Управління | |
| Default | Command button | Визначає, | +/+ |
| | | Чи | |
| | | Дана | |
| | | Командна | |
| | | Командного | |
| | | Кнопкою по | |
| | | Замовчуванням | |
| | Box. Printer | мальованої | -/+ |
| | Object, shape. | Лінії (точки) | |
| DrawWidth | Form, picture | Визначає | -/+ |
| | Box, Printer | ширину | |
| | Object | мальованої | |
| | | Лінії (точки) | |
| Enabled | Form, MDI | Визначає | +/+ |
| | Form, check | можливість | |
| | Box, combo | доступу до | |
| | Box, command | елементу | |
| | Button, data | (елемент | |
| | Control, | реагує на | |
| | Directory list | дії | |
| | Box, drive | користувача) | |
| | List box, file | | |
| | List box, | | |
| | Frame, grid, | | |
| | Horizontal | | |
| | Scroll bar, | | |
| | Image, label, | | |
| | List box, | | |
| | Menu, option | | |
| | Button, | | |
| | Picture box, | | |
| | Text box, | | |
| | Timer, | ||
| | Vertical | | |
| | Scroll bar | | |
| FillColor | Form, picture | Визначає | +/+ |
| | Box, Printer | колір | |
| | Object, shape | заповнення | |
| FillStyle | box. Printer | заповнення | |
| | Object, | | |
| FixedCols, | Grid | Число | +/+ • |
| Fixed Rows | | виділених | |
| | | Колонок, стовп | |
| | | Цов | | p>
Продовження табл. 2.1
| Назва | Для яких | Опис | Возможн |
| властивості | елементів | дії | ость |
| | Управління | | змінено |
| | Використовується | | ия |
| FontBold, | Form, check | Вид | +/+ |
| Fontltalic, | box, combo | виведеного | |
| FontStriket | box, command | тексту (жирний | |
| hr. | button, common |, курсив, | |
| FontTranspa | dialog, data | закреслений, | |
| r. | control, | "ясний") | |
| FontUnderli | directory list | | |
| ne | box, drive | | |
| | List box, file | | |
| | List box, | | |
| | Frame, grid, | | |
| | Label, list | | |
| | Box, | | |
| | Optionbutton, | | |
| | Picture box, | | |
| | Printer | | |
| | Object, text | | |
| | Box | | |
| FontNarne | Form, check | Тип шрифту | +/+ |
| | Box, combo | виведеного | |
| | Box, command | тексту | |
| | Button, common | | |
| | Dialog, data | | |
| | Control, | | |
| | Directory list | | |
| | Box, drive | | |
| | List box, file | | |
| | List box, | | |
| | Frame, grid, | | |
| | Label, list | | |
| | Box, | | |
| | Optionbutton | | |
| | Picture box. | | |
| | Printer | | |
| | Object, text | | |
| | Box | | |
| FontSize | Form, check | Розмір шрифту | +/+ |
| | Box, combo | виведеного | |
| | Box, command | тексту | |
| | Button, common | | |
| | Dialog, data | | |
| | Control, | | |
| | Directory list | | |
| | Box, drive | | |
| | List box, file | | |
| | List box, | | |
| | Frame, grid, | | |
| | Label, list | | |
| | Box, | | |
| | Optionbutton, | | |
| | Picture box, | | |
| | Printer | | |
| | Object, text | | |
| | Box | | |
| BackColor, | Form, check | Колір фону та | |
| ForeColor | box, combo | основний колір | |
| | Box, command | виводиться | |
| | Button (тільки | інформації | |
| | BackColor), | | |
| | Data control, | | |
| | Directory list | | |
| | Box, drive | | |
| | List box, file | | |
| | List box, | | |
| | Frame, grid, | | |
| | Label, list | | |
| | Box, OLE | | |
| | Control, | | |
| | Option button, | | |
| | Picture box, | | |
| | Printer object | | |
| | (Тільки | | |
| | ForeColor), | | |
| | Shape (тільки | | |
| | BackColor), | | |
| | Text box | | | p>
Продовження табл. 2.1
| Назва | Для яких | | жность |
| властивості | елементів | | змінено |
| | Управління | | ия |
| | Використовується | | |
| Format | | Визначає | -/+ |
| | | Формат | |
| | | Отримуються і | |
| | | Пере | |
| GridLines | Grid | визначає | +/+ |
| | | Видимість | |
| | | Сітки таблиці | |
| GridLineWid | Grid | Визначає | +/+ |
| th | | ширину ліній | |
| | | Сітки таблиці | |
| Height, | Form, MDI | Визначають | +/+ |
| Width | form, check | розміри | |
| | Box, combo | об'єкта | |
| | Box, command | (висота і | |
| | Button, data | ширина) | |
| | Control, | | |
| | Directory list | | |
| | Box, drive | | |
| | List box, file | | |
| | | | |
| | Horizontal | | |
| | Scroll bar, | | |
| | Image, label | | |
| Highlight | Grid | ку виділеної | +/+ |
| | | Комірки | |
| | | Таблиці. | |
| | | Іконки форми | |
| | | В її | |
| | | Згорнутому | |
| | | Стані | |
| Index | Check box, | Визначає | +/-. |
| (Control | combo box, | індекс | |
| Arrays) | command | елементу в | |
| | Button, common | масиві | |
| | Dialog, data | однорідних | |
| | Control, | елементів | |
| | Directory list | управління | |
| | Box, drive | | |
| | List box, file | | |
| | List box, | | |
| | Frame, grid, | | |
| | Horizontal | | |
| | Scroll bar, | | |
| | Image, label, | | |
| | Line, list | | |
| | Box, menu. OLE | | |
| | Control, | | |
| | Option button, | | |
| | | | |
| | Box, timer, | | |
| | Vertical | | |
| | Scroll bar | | |
| Interval | | мілісекунд в | +/+ |
| | | Задається | |
| | | Інтервалі | |
| I tern Data | Combo box, | Масив | -/+ |
| | List box | значень | |
| | | Індексів | |
| | | Елементів | |
| | | Списку | |
| | | (Спочатку | |
| | | Про значення | |
| | | Індексів | |
| | | Збігаються з | |
| | | Позицією | |
| | | Елементу в | |
| | | Списку) | | p>
Продовження табл. 2.1
| Назва | Для яких | Опис