Побудова інтерфейсу програми
Щоб програмою могли користуватися всі, необхідно створити зрозуміле та зручне середовище спілкування користувача з програмою. Такий дружній інтерфейс, потребує мінімального попереднього вивчення, може стати причиною успіху програми загалом. В MapInfo взаємодія з користувачем здійснюється через меню, інструментальні панелі, діалогові вікна [45].
Проектування графічного інтерфейсу користувача один з найважливіших етапів створення програми. Цілком можливо, що для проектування невеликої програми, котра буде управлятися всього однією кнопкою інструментальної панелі цього не достатньо, однак для проектування геоінформаційної системи – це питання буде ключовим. Фрагмент програми, що забезпечує графічний інтерфейс користувача, часто займає значну частину її коду, і ця частина надзвичайно важлива [62].
Для створення нового або зміни існуючого меню застосовується оператор Create Menu. Після виконання процедури theEnd програма закінчує роботу, і побудоване меню завантажується. Необхідність в редагуванні меню виникає, якщо потрібно:
§ додати або видалити користувацьке меню як пункт існуючого меню;
§ додати або видалити елементи стрічки меню MapInfo;
§ змінити стан елемента меню.
Контекстне меню є зручним засобом інтерфейсу користувача, що помітно прискорює роботу в програмі. В MapInfo розрізняють контекстні меню вікна карти, вікна списку і т.д. Ідентифікатори стандартних меню з ID 16 по ID 22 відносяться до контекстних меню. Такі меню управляються за допомогою таких же програмних засобів, як і звичайні меню (Create Menu, Alter Menu, Alter Menu Item). Відключити наявність контекстного меню можна за допомогою оператора типу Create Menu “MapperShortCut As” (в данному випадку буде відключено контекстне меню карти. Відновити доступність стандартного контекстного меню карти можна за допомогою оператора Create Menu “MapperShortCut” As Default.
Діалогові вікна присутні майже в кожній програмі. Їх необхідність обумовлена хоча б тим, що користувачу потрібно:
§ налаштувати процес вирішення задачі;
§ отримати повідомлення та коментар ходу вирішення;
§ керувати процесом вирішення задачі;
§ забезпечувати введення/виведення даних.
В середовищі MapBasic розрізняють стандартні та користувацькі вікна діалогів. До стандартних діалогів відносять діалоги, що сформовані операторами вказаними в таблиці 9.2, а до користувацьких діалогових вікон оператори зазначені в таблиці 9.3.
Таблиця 9.2
Оператори стандартних діалогів (за В.А. Овчинниковым [62])
Ask | Показує діалогове вікно з повідомленнями і пропонує підтвердити або відмінити пропозицію |
Note | Відображає інформаційне повідомлення |
FileOpenDlg | Викликає діалогове вікно «Відкрити файл…» |
FileSaveAsDlg | Викликає діалогове вікно «Зберегти файл як…» |
ProgressBar | Створює діалогове вікно-індикатор виконання процесу |
SetProgressBar | Показує/приховує діалог виконання процесу |
Alter MapInfoDialog | Робить недоступним, приховує або присвоює значення елементу стандартного діалогового вікна в MapInfo |
Таблиця 9.3
Оператори користувацьких діалогів (за В.А. Овчинниковым [62])
Dialog | Створює нове діалогове вікно |
Alter Control | Змінює стан елементу діалогу |
Trigger Control () | Повертає ідентифікатор елементу діалогу, до котрого користувач звертався востаннє |
ReadControl Value () | Повертає наявне значення одного з елементів активного діалогу. |
Dialog Preserve | Призупиняє закриття користувацького діалогу |
Dialog Remove | Забезпечує можливість закриття користувацького діалогу до натискання кнопок ОК або Відміна |
CommandInfo() | Використовується для визначення подій: натискання кнопки ОК, завершення процесу ProgressBar, подвійного натискання мишки в списках діалогу |