MB60UG
.pdfMapBasic
Среда разработки
(Русское издание)
Руководство
пользователя
MapInfo Corporation
Troy, New York
Information in this document is subject to change without notice and does not represent a commitment on the part of the vendor or its representatives. No part of this document may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, without the written permission of MapInfo Corporation, One Global View, Troy, New York 12180–8399.
Ó1992-2000 MapInfo Corporation. All rights reserved. MapInfo Help Ó1992-2000 MapInfo Corporation. All rights reserved.
Русский перевод. ©2000 Владимир Журавлев, Алексей Колотов, Всеволод Николаев. Все права защищены. Русская версия. ©2000 Эсти Мап. Все права защищены.
MapInfo, MapInfo Professional, MapBasic, and the MapInfo Logo are registered trademarks of MapInfo Corporation. Contact MapInfo Corporation on the Internet at: http://www.mapinfo.com.
MapInfo Corporate Headquarters: |
MapInfo Europe Headquarters: |
Germany: |
|
|||
Voice: |
(518) 285–6000 |
Voice: |
+44 (0)1753 848 200 |
Voice: |
+49 (0)6142 203 400 |
|
Fax: |
(518) 285–6060 |
Fax: |
+44 (0)1753 621 140 |
Fax: |
+49 (0)6142 203 444 |
|
Sales Info Hotline: (800) 327–8627 |
email: |
uk@mapinfo.com |
email: germany@mapinfo.com |
|||
Federal Sales: (800) 619–2333 |
|
|
|
|
||
Technical Support Hotline: (518) 285– |
Toll–free telephone support is available in the U.S. and Canada. |
|||||
7283 Fax: (518) 285–6080 |
Contact your MapInfo sales representative for details. For |
|||||
international customers, please use the Technical Support Fax |
||||||
|
|
|||||
|
|
number. |
|
|
|
Adobe, the Adobe logo and Acrobat are trademarks of Adobe Systems Incorporated.
WARNING: This software uses patented LZW technology for .GIF image compression and/or decompression. (Unisys United States patent No. 4,558,302 and corresponding patents in Canada, France, Germany, Italy, Japan and the United Kingdom). GIF images compressed or decompressed for transmission via the Internet or via any other on–line communication capability may not be sold or licensed for revenue, or used by an Internet Service Provider or in paid advertisements unless the user first enters into a written license agreement with Unisys. For information concerning licensing, please contact: Unisys Corporation Welch Licensing Department C1SW19 Township Line & Union Meeting Roads P.O. Box 500 Blue Bell PA 19424 Fax: 215–986–3090.
The MapInfo Professional font sets were provided by Galapagos Design Group of Littleton, MA. libtiffÓ 1988-1995 Sam Leffler, copyright Ó 1991-1995 Silicon Graphics, Inc.
libgeotiffÓ 1995 Niles D. Ritter.
Portions of the software are derived from the Standard C Library, copyright 1992, by P.J.Plauger, published by Prentice–Hall, and are used with permission.
Portions Copyright Ó1999 3D Graphics, Inc. All Rights Reserved.
HILÓ Media Cybernetics, Inc. 1993. Halo Imaging Library is a trademark of Media Cybernetics, Inc. LEAD Technologies, Inc. Ó 1996.
Visualization Toolkit Ó 1999. Blue Marble Ó 1993-2000. ECW by ER Mapper Ó 1999.
VMGrid by Northwood Geoscience, Ltd Ó 1995-2000. Universal Translator by Safe Software, Inc. Ó 2000.
“Crystal Reports Ò” is a proprietary trademark of Seagate Software Information Management Group (Canada) Inc. Vancouver, BC or its affiliates and is licensed to MapInfo by Seagate”
Seagate Crystal Reports CopyrightÓ 1997 (manual and software) Seagate Software, Inc. All Rights Reserved. Seagate Software, Seagate, and the Seagate logo are registered trademarks of Seagate Technology, Inc., or one of its subsidiaries. Seagate Crystal Reports, Seagate Crystal Info, the Seagate Crystal reports logo, and Smart Navigation are trademarks or registered trademarks of Seagate Software, Inc.
Products named herein may be trademarks of their respective manufacturers and are hereby recognized. Trademarked names are used editorially, to the benefit of the trademark owner, with no intent to infringe on the trademark.
This documentation was specifically produced by Gayle Patenaude, with the help of Dianne Ritter, Ed McElroy, Marie Costa, Max Morton, and Larry Strianese. Colleen Cox, Editor. Juliette Funiciello–Vunk, Associate Editor. Dave Smith, now back in Engineering, is the ‘godfather’ of this volume. The Documentation Department is indebted to MapInfo’s Quality Assurance Department and, of course, to all the members of the Product Development team that engineered this project.
MapInfo welcomes your comments and suggestions.
Август 2000
СОДЕРЖАНИЕ
Глава 1: Введение........................................................................................... |
1 |
Требования к системе ......................................................................................... |
2 |
Установка MapBasic ........................................................................................... |
3 |
Стандартные имена файлов и типы файлов MapBasic................................................... |
3 |
Соглашения об обозначениях ............................................................................... |
5 |
Глава 2: Обзор языка MapBasic...................................................................... |
7 |
Что такое среда разработчика MapBasic?.................................................................. |
8 |
Главные особенности языка MapBasic .................................................................... |
10 |
Как осваивать MapBasic?.................................................................................... |
12 |
Глава 3: Работа в интегрированной среде разработки программ.................. |
15 |
Введение в интегрированную среду MapBasic ............................................................ |
16 |
Как ввести или отредактировать программу............................................................. |
16 |
Компиляция программ....................................................................................... |
18 |
Проект: Сборка приложения из нескольких модулей.................................................. |
20 |
Обзор меню среды разработки программ MapBasic...................................................... |
24 |
Глава 4: Основы языка MapBasic ................................................................. |
29 |
Общие замечания о синтаксисе языка MapBasic ........................................................ |
30 |
Переменные .................................................................................................... |
32 |
Выражения..................................................................................................... |
37 |
Циклы и другие управляющие операторы................................................................ |
46 |
Процедуры...................................................................................................... |
51 |
Процедуры-обрабочики системных событий............................................................. |
53 |
Рекомендации по использованию процедур-обработчиков системных событий .................. |
56 |
Функции, созданные пользователем ...................................................................... |
58 |
Директивы компилятора .................................................................................... |
59 |
Организация программ....................................................................................... |
61 |
Глава 5: Отладка и обработка ошибок.......................................................... |
63 |
Ошибки при выполнении.................................................................................... |
64 |
Отладка программ на языке MapBasic .................................................................... |
64 |
Обработка ошибок ............................................................................................ |
66 |
Глава 6: Интерфейс пользователя................................................................ |
69 |
Создание интерфейса пользователя ....................................................................... |
70 |
Программная обработка событий.......................................................................... |
71 |
Ìåíþ ............................................................................................................ |
73 |
Стандартные диалоговые окна ............................................................................. |
81 |
Новые диалоговые окна...................................................................................... |
85 |
Îêíà ............................................................................................................. |
94 |
Инструментальные панели................................................................................ |
101 |
Запуск программы в среде MapInfo ...................................................................... |
109 |
Рекомендации по повышению производительности.................................................. |
111 |
Глава 7: Работа с таблицами...................................................................... |
113 |
Открытие таблиц с помощью MapBasic ................................................................. |
114 |
Создание файла отчета из открытой таблицы MapInfo ............................................. |
117 |
СОДЕРЖАНИЕ |
|
Чтение значений из строк и колонок таблицы ........................................................ |
118 |
Запись значений в таблицу................................................................................ |
122 |
Создание новых таблиц.................................................................................... |
123 |
Изменение структуры таблицы........................................................................... |
124 |
Работа с таблицей Selection ............................................................................... |
126 |
Доступ к Косметическому слою с помощью таблицы “CosmeticN" ................................ |
128 |
Доступ к окнам Отчетов с помощью таблиц “LayoutN".............................................. |
129 |
Редактирование в многопользовательской среде ..................................................... |
130 |
Файлы-компоненты таблицы ............................................................................ |
134 |
Таблицы, содержащие растровые изображения....................................................... |
135 |
Работа с метаданными ..................................................................................... |
137 |
Работа со сшитыми таблицами........................................................................... |
140 |
Доступ к удаленным данным ............................................................................. |
142 |
Доступ и изменения в удаленных базах данных при помощи связанных таблиц .............. |
144 |
Прямой доступ к удаленным базам данных............................................................ |
144 |
Рекомендации по повышению производительности при работе с таблицами ................... |
145 |
Глава 8: Ввод/вывод в файлы .................................................................... |
147 |
Обзор файлового ввода/вывода........................................................................... |
147 |
Файлы последовательного доступа...................................................................... |
149 |
Файлы произвольного доступа ........................................................................... |
151 |
Двоичные файлы ............................................................................................ |
151 |
Особенности работы с файлами в различных операционных системах и с национальными |
|
наборами символов ......................................................................................... |
152 |
Функции, имеющие дело с режимами файлового ввода/вывода ................................... |
153 |
Глава 9: Графические объекты................................................................... |
155 |
Переменные типа Object ................................................................................... |
156 |
Работа с колонкой “Obj"................................................................................... |
156 |
Определение атрибутов объекта.......................................................................... |
158 |
Создание новых объектов ................................................................................. |
163 |
Создание новых объектов на основе уже существующих............................................ |
166 |
Изменение объектов ........................................................................................ |
167 |
Работа с подписями......................................................................................... |
169 |
Координаты и единицы измерения ...................................................................... |
173 |
Географические запросы ................................................................................... |
176 |
Глава 10: Создание переносимых прикладных программ .......................... |
183 |
Диалоговые окна............................................................................................ |
185 |
Стили графических объектов ............................................................................. |
186 |
Ìåíþ .......................................................................................................... |
186 |
Перенос откомпилированных приложений ............................................................ |
187 |
Переносимость и строчные выражения ................................................................. |
187 |
Название файлов и DOS-маршрутов..................................................................... |
187 |
Соглашение по чтению и записи в файлы .............................................................. |
188 |
Глава 11: Особенности MapBasic в среде MS Windows ............................... |
189 |
Объявление и использование динамических библиотек (DLL) ..................................... |
190 |
16-разрядные и 32-разрядные DLL ...................................................................... |
194 |
Создание пиктограмм на кнопках и новых курсоров................................................. |
197 |
II
|
СОДЕРЖАНИЕ |
Связь между приложениями с использованием DDE................................................. |
200 |
Добавление Справочной системы к Вашему приложению........................................... |
206 |
Глава 12: Интегрированная Картография.................................................. |
207 |
Что такое Интегрированная Картография?............................................................ |
208 |
Как выглядит приложение с Интегрированной Картой?............................................ |
208 |
Концепции Интегрированной Картографии ........................................................... |
210 |
Технические аспекты Интегрированной Картографии .............................................. |
212 |
Простейший пример ........................................................................................ |
213 |
Подробное обсуждение Интегрированной Картографии............................................. |
213 |
Использование уведомляющих вызовов (Callbacks) для получения информации из MapInfo222
Другие способы использования уведомлений.......................................................... |
225 |
Справочная система ........................................................................................ |
226 |
Полезные операторы и функции языка MapBasic..................................................... |
228 |
Объектная модель механизма управления объектами OLE ......................................... |
229 |
Аргументы командной строки MapInfo ................................................................. |
240 |
Введение в Интегрированную Картографию с поддержкой Visual C++ и MFC................... |
241 |
Добавление кнопок и процедур-обработчиков......................................................... |
246 |
Где получить дополнительную информацию .......................................................... |
250 |
Приложение А: Программы из поставки.................................................... |
251 |
Приложение B: Текст программы TEXTBOX.............................................. |
255 |
Приложение C: Новости MapBasic версии 6.0............................................. |
271 |
Приложение D: Поддержка типов данных ODBC........................................ |
273 |
Приложение E: Сохранение графики в удаленной базе данных.................. |
275 |
Индекс........................................................................................................ |
277 |
III
Введение |
1 |
|
|
Глава 1: Введение |
|
Добро пожаловать в среду разработчика MapBasic 6.0, мощный и одновременно простой в использовании язык программирования, который позволит Вам создавать собственные приложения в среде MapInfo Professional. В этой главе будет описана процедура установки MapBasic. Общая информация о возможностях и назначении языка MapBasic начинается с главы 2: "Обзор языка MapBasic".
В этой главе . . . |
|
Требования к системе ................................................................... |
3 |
Установка MapBasic..................................................................... |
3 |
Стандартные имена файлов и типы файлов MapBasic ............................ |
3 |
Соглашения об обозначениях ......................................................... |
5 |
Глава 1: Введение
Требования к системе
Чтобы использовать MapBasic для Windows, Ваш компьютер должен удовлетворять
следующим требованиям:
Компонента |
Обязательные требования |
Операционная система |
Microsoft Windows 95/98 èëè Windows NT 4.0 |
Дисплей |
Любой, работающий с Windows. |
Ìûøü |
Любая мышь, работающая с Windows. |
Жесткий диск |
45 Мb свободного места на диске для полной |
|
установки |
Совместимость между версиями
Программы, созданные в ранних версиях MapBasic, будут работать под Mapinfo Professional.
Программы, созданные с помощью MapBasic 5.5/6.0, не будут работать под MapInfo 4.0.
ÂПриложении C более подробно описаны:
∙Новые возможности MapBasic 6.0.
2
Глава 1: Введение
Установка MapBasic
Чтобы установить среду разработчика MapBasic:
1.Вставьте компакт диск с MapInfo Pro CD дисковод.
В папке MapBasic\Disk1 запустите программу setup.exe.
2.Следуйте указаниям, появляющимся на экране.
По умолчанию MapBasic устанавливается в директорию под MapInfo (т.е. C:\MAPINFO\MAPBASIC\MAPBASIC.EXE).
Зарегистрируйтесь!
Заполните регистрационную карточку и отошлите ее в местное отделение MapInfo Corporation, чтобы получать информацию о новых версиях.
Внимание: Техническая поддержка распространяется только на зарегистрировавшихся
пользователей.
Обновление с предыдущих версий
В приложении С или справочной системе MapBasic, ознакомьтесь с новыми возможностями этой версии.
Запуск MapBasic
Чтобы запустить среду разработки MapBasic, сделайте двойной щелчок на пиктограмме MapBasic.
Mapbasic.exe
Стандартные имена файлов и типы файлов MapBasic
Процедура установки языка MapBasic переносит на Ваш компьютер следующие стандартные файлы:
ERRORS.DOC: Текстовый файл со списком сообщений об ошибках MapBasic;
MAPBASIC.EXE: Исполняемый файл, позволяющий Вам работать в среде MapBasic;
MAPBASIC.DEF: Файл заголовков, содержащий объявления стандартных переменных;
MENU.DEF: Файл заголовков, содержащий объявления стандартных переменных, относящихся к системе меню MapInfo;
ICONS.DEF: Файл заголовков, содержащий объявления стандартных переменных, относящихся к виду кнопок и курсоров в MapInfo;
MAPBASIC.H: Файл заголовков для программистов на языках C/C++; аналогичен
3
Глава 1: Введение
MAPBASIC.DEF;
MAPBASIC.BAS: Файл заголовков для программистов на языке Visual Basic; аналогичен MAPBASIC.DEF;
MAPBASIC.HLP: Справочный файл по языку MapBasic;
имя_файла.MB, имя_файла.MBP: программы-примеры; см. список этих программ в Приложении А.
При работе в среде MapBasic используются следующие стандартные расширения: имя_файла.MB: Программный файл (исходный текст на языке MapBasic);
имя_файла.MBX: Откомпилированный (выполняемый) файл;
имя_файла.MBP: Файл описания модулей (содержит список всех модулей, собираемых в единую программу);
имя_файла.MBO: Объектный файл (создается при сборке программы из нескольких модулей);
имя_файла.ERR: Список сообщений об ошибках, полученный при компиляции программы, записанной на диске.
4