- •Add Cartographic Frame
- •Оператор Alter Button
- •Оператор Alter ButtonPad
- •Оператор Alter MapInfoDialog
- •Оператор Alter Menu
- •Оператор Alter Menu Item
- •Оператор Alter Object
- •Оператор Alter Table
- •Оператор Autolabel
- •Оператор Beep
- •Оператор Browse
- •Предложение Brush
- •Оператор Call
- •Предложение CharSet
- •Функция ChooseProjection$()
- •Оператор Close All
- •Оператор Close File
- •Оператор Close Table
- •Оператор Close Window
- •Оператор Commit Table
- •Оператор Continue
- •Предложение Control CheckBox
- •Предложение Control EditText
- •Предложение Control GroupBox
- •Предложение Control RadioGroup
- •Оператор Create Arc
- •Оператор Create ButtonPad
- •Оператор Create ButtonPads As Default
- •Оператор Create Cartographic Legend
- •Оператор Create Collection
- •Оператор Create Ellipse
- •Оператор Create Frame
- •Оператор Create Grid
- •Оператор Create Index
- •Оператор Create Legend
- •Оператор Create Line
- •Оператор Create Map
- •Оператор Create Map3D
- •Оператор Create Menu
- •Оператор Create Menu Bar
- •Оператор Create MultiPoint
- •Оператор Create Point
- •Оператор Create PrismMap
- •Оператор Create Ranges
- •Оператор Create Rect
- •Оператор Create Redistricter
- •Оператор Create Region
- •Оператор Create Report From Table
- •Оператор Create RoundRect
- •Оператор Create Styles
- •Оператор Create Table
- •Оператор Create Text
- •Оператор DDEExecute
- •Оператор DDEPoke
- •Оператор DDETerminate
- •Оператор DDETerminateAll
- •Оператор Declare Function
- •Оператор Declare Sub
- •Оператор Define
- •Оператор Delete
- •Оператор Dialog
- •Оператор Dialog Preserve
- •Оператор Dialog Remove
- •Оператор Dim
- •Оператор Do Case...End Case
- •Оператор Do...Loop
- •Оператор Drop Index
- •Оператор Drop Map
- •Оператор Drop Table
- •Оператор End MapInfo
- •Оператор End Program
- •Процедура EndHandler
- •Оператор Error
- •Оператор Exit Do
- •Оператор Exit For
- •Оператор Exit Function
- •Оператор Exit Sub
- •Оператор Export
- •Оператор Fetch
- •Оператор Find
- •Оператор Find Using
- •Предложение Font
- •Процедура ForegroundTaskSwitchHandler
- •Функция FormatDate$
- •Оператор Function...End Function
- •Оператор Get
- •Оператор Graph
- •оператор Import
- •Оператор Include
- •Оператор Input #
- •Оператор Insert
- •Функция IsPenWidthPixels()
- •Оператор Kill
- •Оператор Line Input
- •Процедура Main
- •Оператор Map
- •Оператор Menu Bar
- •Оператор Metadata
- •Оператор Note
- •Оператор Objects Check
- •Оператор Objects Clean
- •Оператор Objects Combine
- •Оператор Objects Disaggregate
- •Оператор Objects Enclose
- •Оператор Objects Erase
- •Оператор Objects Intersect
- •Оператор Objects Overlay
- •Оператор Objects Snap
- •Оператор Objects Split
- •Оператор OnError
- •Оператор Open File
- •Оператор Open Table
- •Оператор Open Window
- •Предложение Pen
- •Функция PenPattern()
- •Функция PenWidthToPoints()
- •Функция PointsToPenWidth()
- •Оператор Print
- •Оператор PrintWin
- •Оператор ProgressBar
- •Оператор Put
- •Оператор Randomize
- •Оператор ReDim
- •Оператор Register Table
- •Оператор Reload Symbols
- •Процедура RemoteMapGenHandler
- •Процедура RemoteMsgHandler
- •Оператор Rename File
- •Оператор Rename Table
- •Оператор Reproject
- •Оператор Resume
- •Оператор Rollback
- •Оператор Run Application
- •Оператор Run Command
- •Оператор Run Menu Command
- •Оператор Run Program
- •Оператор Save File
- •Оператор Save Workspace
- •Оператор Seek
- •Процедура SelChangedHandler
- •Оператор Select
- •Оператор Server Begin Transaction
- •Оператор Server Bind Column
- •Оператор Server Close
- •Оператор Server Commit
- •Оператор Server Create Map
- •Оператор Server Create Table
- •Оператор Server Create Style
- •Оператор Server Disconnect
- •Оператор Server Fetch
- •Оператор Server Refresh
- •Оператор Server Rollback
- •Оператор Server Set Map
- •Оператор Set Application Window
- •Оператор Set Area Units
- •Оператор Set Browse
- •Оператор Set Cartographic Legend
- •Оператор Set Command Info
- •Оператор Set CoordSys
- •Оператор Set Date Window
- •Оператор Set Digitizer
- •Оператор Set Distance Units
- •Оператор Set Drag Threshold
- •Оператор Set Event Processing
- •Оператор Set File TimeOut
- •Оператор Set Format
- •Оператор Set Graph
- •Оператор Set Handler
- •Оператор Set Layout
- •Оператор Set Legend
- •Оператор Set Map
- •Оператор Set Map3D
- •Оператор Set Next Document
- •Оператор Set Paper Units
- •Оператор Set PrismMap
- •Оператор Set ProgressBars
- •Оператор Set Redistricter
- •Оператор Set Resolution
- •Оператор Set Shade
- •Оператор Set Table
- •Оператор Set Target
- •Оператор Set Window
- •Оператор Shade
- •Оператор StatusBar
- •Оператор Stop
- •Оператор Sub...End Sub
- •Предложение Symbol
- •Оператор Terminate Application
- •Функция Time()
- •Процедура ToolHandler
- •Оператор Type
- •Оператор UnDim
- •Оператор Unlink
- •Оператор Update
- •Оператор Update Window
- •Оператор While...Wend
- •Процедура WinChangedHandler
- •Процедура WinClosedHandler
- •Процедура WinFocusChangedHandler
- •Оператор Objects Move
- •Оператор Objects Offset
- •Функция Offset()
- •Функция SphericalOffset()
- •Функция SphericalOffsetXY()
- •Функция CartesianOffsetXY()
- •Функция LayerInfo( )
- •Оператор Register
- •Оператор Server Create Map
- •Функция TableInfo( )
Оператор Create Map3D
Оператор Create Map3D
Назначение:
Создает 3D карту с определенными параметрами.
Синтаксис:
Create Map3D
[ From Window window_id | MapString mapper_creation_string ] [ Camera [ Pitch angle | Roll angle | Yaw angle | Elevation angle ] |
[ Position (x,y,z) | FocalPoint (x,y,z) ] |
[ Orientation (vu_1, vu_2, vu_3, vpn_1, vpn_2, vpn_3, clip_near, clip_far) ] ] [ Light [ Position (x,y,z) | Color lightcolor ] ]
[ Resolution (res_x, res_y) ] [ Scale grid_scale ]
[ Background backgroundcolor ] [ Units unit_name ]
window_id - идентификатор окна карты, содержащего слой поверхности. Если слой поверхности не найден, отображается сообщение об ошибке.
mapper_creation_string - определяет командную строку, которая создает текстуру (отображает объекты векторных слоев) на поверхности.
Camera определяет позицию и ориентацию камеры.
angle - угол в градусах. Горизонтальный угол в пределах от 0-360 градусов определяет поворот карты вокруг центральной точки поверхности. Вертикальный угол в диапазоне от 0-90 определяет возвышение начальной точки поверхности.
Pitch - угловая величина определяет текущее положение точки наблюдения по оси X
Roll - угловая величина определяет текущее положение точки наблюдения по оси Z
Yaw - угловая величина определяет текущее положение точки наблюдения по оси Y
Elevation - определяет поворот камеры (находящейся в точке фокуса) относительно оси X.
Position - определяет положение точки наблюдения/источника света.
FocalPoint – определяет положение точки наблюдения/точки фокуса.
Orientation - определяет ориентацию камеры ViewUp, ViewPlane Normal и Clipping Range (фиксированное отображение).
Resolution количество ячеек поверхности (по X, Y). Эти значения могут быть увеличены до максимального разрешения поверхности (максимального размера ячейки -x,y ). Если поверхность 200x200, то значения разрешения могут лежать только в пределах 200x200.
Grid scale - определяет вертикальный масштаб (в направлении Z-координаты). Значение >1 подчеркивает рельеф, значение <1 снижает топологические особенности (в направлении Z- координаты).
backgroundcolor - цвет, используемый для фона и определяемый функцией RGB.
Units - определяет единицы измерения точек поверхности. Не указывайте их для поверхности, созданной на основании данных температуры или плотности. Этот параметр необходимо указывать во время создания 3D Карты. Если существуют единицы измерения для значений точек поверхности, они должны быть определены во время создания ЗD Карты, так как Вы не сможете изменить(настроить) их позже с использованием диалога "Свойства 3D Карты".
138 |
Справочник MapBasic |
Оператор Create Map3D
Описание:
В результате создается автономное окно 3D Карты, которое связано с данными тех таблиц (в окне Карты), на основании которых оно было создано. Т.е. если эти таблицы будут изменены и окно 3D Карты будет обновлено (или восстановлено из рабочего набора), все изменения отобразятся на трехмерной поверхности.
Ошибка создания будет иметь место в том случае, если window_id - не окно карты или карта не содержит слой поверхности. Если окно карты содержит несколько поверхностей, каждое будет представлено в окне 3D Карты.
3D Карта хранит информацию (строку) об окне карты для генерации текстуры. Эта строка будет также "преобладать" в Рабочем наборе, если окно 3D Карты присутствует в данном Рабочем наборе.
Пример:
Create Map3D Resolution(75,75)
Создает окно 3D карты для последнего окна Карты. Операция не будет выполнена, если окно карты не содержит слоя поверхности. Другой пример:
Create Map3D From Window FrontWindow() Resolution(100,100) Scale 2 Back
ground RGB(255,0,0) Units «ft».
Создает окно 3D карты с красным фоном, единицы по оси z -футы, масштабный коэффициент - 2, и разрешение 100x100.
Смотрите также:
Оператор Set Map3D
Справочник MapBasic |
139 |
Оператор Create Menu
Оператор Create Menu
Назначение:
Создает новое меню или переопределяет уже существующее.
Синтаксис (вариант 1):
Create Menu newmenuname [ ID menu_id ] As
menuitem [ ID menu_item_id ] [ HelpMsg help ] { Calling handler | As menuname } [, menuitem ... ]
Синтаксис (вариант 2):
Create Menu newmenuname As Default
где
newmenuname – заголовок нового меню или стандартное имя переопределяемого меню, тип String; menuitem – имя элемента списка меню, тип String;
menu_id – идентификатор стандартного элемента меню, число типа SmallInt ID от 1 до 15; menu_item_id – целочисленный идентификатор созданного элемента меню;
menuname – заголовок меню, которое будет включено в список как подменю;
help – текст, который будет показываться в строке сообщений при указании на элемент в списке меню;
handler – либо имя процедуры-обработчика, либо код стандартной команды MapInfo, либо строка специального синтаксиса для управления событиями в системе меню через механизмы OLE или DDE; см. ниже “Предложение Calling. Если Вы задаете код команды меню MapInfo (такой как M_WINDOW_STATISTICS), то аргумент menuitem должен начинаться с восклицательного знака и содержать внутри символ каретки (^), чтобы удовлетворять синтаксису команд типа ПОКАЗАТЬ/ СКРЫТЬ.
Описание:
Если параметр newmenuname является именем одного из существующих меню (например, "File"), то оператор Create Menu переопределяет это меню. Если параметр newmenuname имеет какое-то уникальное значение, то оператор Create Menu создает новое меню. Список стандартных имен меню MapInfo приводится в описании оператора Alter Menu.
Оператор Create Menu не показывает новое или переопределяемое меню. Для вывода меню на экран используются операторы Alter Menu Bar и Create Menu Bar. Однако, если оператор Create Menu переопределяет меню, которое есть в строке меню, то изменения в меню отображаются немедленно.
Замечание: MapInfo может одновременно поддерживать не более 48 определений меню, включая стандартные в MapInfo ("Файл" и так далее). Число это не зависит от количества меню, показываемых в данный момент на экране.
В параметре menuitem, который определяет имя элемента меню, могут использоваться специальные управляющие символы, определяющие состояние данного элемента меню (например, доступность команды в меню). Эти символьные последовательности должны задаваться в начале имени элемента. Смотрите таблицу ниже.
Следующие знаки являются зарезервированными и выполняют специальную роль: прямой слэш (/), обратный слэш(\) и знак меньше (<). Если Вы хотите использовать эти знаки в тексте меню или строке подсказки, то необходимо поставить перед зарезервированным символом обратный слэш.
140 |
Справочник MapBasic |
Оператор Create Menu
Например, для помещения в меню "Данные" такой команды как "Клиент\Сервер", надо:
Create Menu ”Data” As
”Клиент\/Сервер” Calling cs_proc
Если текст параметра menuitem начинается с символа @, то пользовательское меню делится на две колонки. Такой элемент помещается первым во вторую колонку.
Обработчики для новых команд меню
Если параметр menuitem задает команду, то в предложении Calling handler может быть задан либо обработчик элемента меню, либо код стандартной команды MapInfo (например, код M_FILE_SAVE соответствует команде ФАЙЛ > СОХРАНИТЬ).
Если для элемента определен обработчик и если пользователь выберет в меню этот элемент, то MapBasic автоматически вызовет процедуру-обработчик. Процедурой-обработчиком меню является заранее объявленная sub-процедура без атрибутов. Если для элемента меню определен код, то Ваша программа должна в начале иметь оператор Include "MENU.DEF", подключающий файл стандартных определений для кодов команд.
С помощью необязательного предложения ID Вы можете задать элементу меню уникальный идентификатор. Вы можете связать один и тот же обработчик с разными элементами меню. В этом случае идентификатор может оказаться полезным для определения, какой именно командой была вызвана эта процедура. Определить идентификатор элемента меню из процедуры-обработчика, которую он вызвал, можно функцией CommandInfo(CMD_INFO_MENUITEM). Идентификатор элемента меню используется также в операторе Alter Menu Item.
Если за параметром menuname не задано ни команды, ни подменю, ни вызова процедуры handler, то соответствующий элемент меню будет неактивным. То есть при указании на этот элемент ничего не будет происходить. Такие элементы в меню выполняют косметическую роль (например, горизонтальная линия, разделяющая список меню на части).
Создание иерархически8подчиненного меню
Свойства элементов меню
Элемент меню может иметь разные состояния. Команда в меню может быть недоступной для выбора пользователем. В списке меню такие команды показываются серым шрифтом. Элемент меню может также выполнять роль переключателя режима. Такая команда при выборе снабжается специальным маркером (в Windows это галочка). При повторном выборе маркер убирается, а установленный режим выключается.Как уже упоминалось выше, параметр menuitem может включать в себя специальные управляющие последовательности:
Управляющий код |
Эффект |
(- |
Горизонтальная разделительная линия; такой элемент не может |
|
иметь обработчик. |
|
Пример: "( " |
( |
Элемент меню недоступен для выбора. |
|
Пример: "(Закрыть" |
Справочник MapBasic |
141 |
Оператор Create Menu
($ |
Код для представления в меню ФАЙЛ четырех последних |
|
открывавщихся файлов. Его можно применять в системе меню один |
|
раз и его нельзя использовать в быстрых меню. Чтобы удалить |
|
список последних открывавшихся файлов из меню ФАЙЛ, либо |
|
удалите этот код из файла MAPINFOW.MNU, либо переопределите |
|
меню ФАЙЛ оператором Create Menu. |
(> |
Код для представления в меню списка открытых окон. Его можно |
|
применять в системе меню один раз. |
! |
Элемент меню при выборе может снабжаться галочкой, но на момент |
|
создания галочка отсутствует. |
|
Пример: "!Показывать предупреждения" |
! ... ^ ... |
Синтаксис для задания названия меню с текстом, зависящим от |
|
ситуации. Текст после восклицательного знака сменяется на текст |
|
после символа “^”. Поведение созданного подобным образом |
|
элемента похоже на поведение следующего (текст меню снабжается |
|
галочкой), однако вместо галочки показывается первый текст, а |
|
вместо отсутствия галочки показывается второй текст. |
|
Пример: ”!Скрыть строку сообщений^Показать строку сообщений” |
!+ |
Элемент меню при выборе может снабжаться галочкой и на момент |
|
создания галочка присутствует. |
|
Пример: "!+Показывать предупреждения" |
В системе Macintosh элементы могут иметь разное написание, то есть для команд может использоваться жирный шрифт, курсив, подчеркнутый, контурный и оттененный шрифты. Для достижения этого эффекта используются следующие управляющие символы в параметре menuname:
Управляющий код |
Эффект (только для Macintosh) |
<B |
Жирный шрифт. |
|
Пример: "Закрыть<B" |
<I |
Курсив. |
<U |
Подчеркнутый шрифт. |
<O |
Контурный шрифт. |
<S |
Оттененный шрифт. |
Заметим, что эти коды ставятся в конце имени элемента, но перед кодами, задающими клавишное сокращение.
Задание клавишных сокращений
Элементам меню могут быть назначены клавишные сокращения (акселераторы), то есть пользователь может вызвать команду с клавиатуры без использования мыши. Клавишные сокращения бывают двух типов.
142 |
Справочник MapBasic |
Оператор Create Menu
Клавишные сокращения первого типа имеют и имена меню, и имена элементов меню. Для того, чтобы вызвать элемент меню, воспользовавшись его клавишным сокращением, надо сначала открыть меню, используя сокращение меню или, как обычно, мышь. Например, для того, чтобы открыть окно Карты, в рабочем окне MapInfo пользователь нажимает сначала клавишное сокращение ALT+О, которым открывается список команд меню ОКНО, и только потом клавишу К (или ALT+К) для запуска команды Карта. На экране в именах меню и команд необходимые литеры подчеркнуты.
Для того, чтобы определить буквы для клавишного сокращения в меню и элементах меню, надо в текстах параметров newmenuname и menuitem использовать знак амперсанда (&) непосредственно перед нужной буквой. Например, текст "&Карта" задает команду Карта.
Другой тип клавишных сокращений позволяет вызвать команду немедленно, не открывая меню, где она находится. Например, для вызова вышеупомянутой команды КАРТА достаточно только нажать клавишу F3. Эти сокращения Вы можете увидеть в списке меню справа от команд. Управляющие коды, используемые для задания клавишного сокращения второго типа, приведены в следующей таблице.
Управляющий код
Для Windows:
/W {letter | %number}
/W# {letter | %number}
Эффект
Задает клавишное сокращение для Windows; команда активизируется клавишей letter или клавишей, заданной ее числовым кодом number.
Например: записи "Данные/WД" и "Данные/W%196"
равносильны.
Задает клавишное сокращение для Windows; команда активизируется клавишей letter или клавишей, заданной ее числовым кодом number, с нажатой клавишей SHIFT. Например: записи "Данные/W#Д" и "Данные/W#%196"
равносильны.
/W@ {letter | %number} |
Задает клавишное сокращение для Windows; команда |
|
активизируется клавишей letter или клавишей, заданной ее |
|
числовым кодом number, с нажатой клавишей ALT. |
|
Например: записи "Данные/W@Д" и "Данные/W@%196" |
|
равносильны. |
/W^ {letter | %number} |
Задает клавишное сокращение для Windows; команда |
|
активизируется клавишей letter или клавишей, заданной ее |
|
числовым кодом number, с нажатой клавишей CTRL. |
|
Например: записи "Данные/W^Д" и "Данные/W^%196" |
|
равносильны. |
Для Macintosh: |
/Mletter Задает клавишное сокращение для Macintosh; команда |
|
активизируется клавишей letter с нажатой клавишей COM- |
|
MAND. |
|
Например: "Данные/MД". |
В Windows для использования клавиш Fn используется возможность задавать клавишные сокращения численным кодом (%number). Так, для клавиши F1 численным кодом является 112, для
Справочник MapBasic |
143 |
Оператор Create Menu
F2 – 113 и так далее.
Заметим, что оператор Create Menu Bar As Default убирает и переопределяет все пользовательские меню, заданные оператором Create Menu. Но если Вам надо вернуть к стандартному виду только один список меню, а не все, то используйте оператор Create Menu menuname As Default.
Предложение Calling
Предложение Calling задает, что должно случиться, если пользователь в меню выполнит команду, построенную приложением. Приведем возможные примеры использования этого предложения:
Примеры
Calling M_FILE_NEW
Описание
Если за словом Calling идет целочисленный код из файла MENU.DEF, MapInfo запускает на выполнение соответствующую стандартную команду MapInfo (например, ФАЙЛ > НОВАЯТАБЛИЦА).
Calling my_procedure |
Если задано имя sub-процедуры, MapInfo передает |
|
управление этой процедуре. |
Calling OLE ”methodname” |
Только для Windows. MapInfo управляет событиями, |
|
обращаясь с именем метода к объекту OLE Automation, |
|
установленному SetCallback-методом MapInfo. Детали |
|
смотрите в 12 главе Руководства пользователя MapBa |
|
sic. |
Calling DDE ”server”,”topic” |
Только для Windows. MapInfo управляет событиями, |
|
присоединясь через DDE к паре “сервер|тема” и посылая |
|
выполняемое сообщение на DDE-сервер. |
В последних двух случаях строка послания для OLE или DDE сервера должна начинаться с трех символов “MI:” для того, чтобы сервер смог определить, что послание пришло от MapInfo. Остальная часть этой строки состоит из разделенного запятыми списка значений возврата функций с Com mandInfo(1) по CommandInfo(8). Детали читайте в 12 главе Руководства пользователя MapBasic.
Пример 1:
Оператор Create Menu создает пользовательское меню ДАННЫЕ, которое добавляется в строку меню оператором Alter Menu Bar до меню Окно (ID 6) и меню справка (ID 7):
Declare Sub Main
Declare Sub addsub
Declare Sub editsub
Declare Sub delsub
|
Sub Main |
|
Create Menu "Данные" As |
|
"Добавить" Calling addsub, |
|
"Правка" Calling editsub, |
|
"Удалить" Calling delsub |
144 |
Справочник MapBasic |
Оператор Create Menu
Alter Menu Bar Remove ID 6, ID 7
Alter Menu Bar Add ”Данные”, ID 6, ID 7
End Sub
Пример 2:
В этом фрагменте оператор Create Menu создает сокращенную версию меню ФАЙЛ. Управляющий символ (делает команды ЗАКРЫТЬ, СОХРАНИТЬ и ПЕЧАТАТЬ недоступными для выбора). Для команд ОТКРЫТЬ и СОХРАНИТЬ заданы клавишные сокращения второго типа. При определении текста элемента меню используется знак табуляции – Chr$(9) для отделения клавишного сокращения.
Include "MENU.DEF"
Create Menu "Файл" As
"Новый" Calling M_FILE_NEW,
"Открыть" +Chr$(9)+"Ctrl+О/W^J" Calling M_FILE_OPEN, "( ",
"(Закрыть" Calling M_FILE_CLOSE,
"(Сохранить" +Chr$(9)+"Ctrl+Ы /W^S" Calling M_FILE_SAVE, "( ",
"(Печатать" Calling M_FILE_PRINT, "( ",
"Выход" Calling M_FILE_EXIT
Пример 3:
Если не хотите, чтобы пользователь мог открывать быстрые меню, используйте оператор Create Menu и переопределите эти меню одним только разделителем: “(-”, как показано в следующем примере.
Create Menu ”MapperShortcut” As ”( ”
Смотрите также:
Create Menu Bar, Alter Menu Item
Справочник MapBasic |
145 |