Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MB_REF_7.pdf
Скачиваний:
25
Добавлен:
13.02.2015
Размер:
2.96 Mб
Скачать

Оператор Set Window

Оператор Set Window

Назначение:

Изменяет состояние, размер и положение окна на экране, управляет принтером, размером бумаги и полями.

Синтаксис:

Set Window window_id

[ Position ( x , y ) [ Units paper_units ] ]

[ Width win_width

[ Units paper_units ] ]

[ Height win_height

[ Units paper_units ] ]

[ Font ... ]

 

[ Min | Max | Restore ] [ Front ]

[ Title { new_title | Default } ]

[ Help [ { File help_file | File Default | Off } [ Permanent ] ] [ Contents ] [ ID context_ID ] [ { Show | Hide } ]

[ Printer { Default | Name printer_name }

[ Orientation { Portrait | Landscape } ] [ Copies number ]

[ Papersize number ] [ Border { On | Off } ]

[ TrueColor { On | Off } ]

[ Dither { Halftone | ErrorDiffusion } ] [ Method { Device | Emf } ]

[ Transparency

[ Raster { Device | ROP } ] [ Vector { Device | ROP }] ] [ Margins

[ Left d1 ]

[ Right d2 ]

[ Top d3 ]

[ Bottom d4 ] Units <units> ] } ]

[ Export { Default |

[ Border { On | Off } ]

[ TrueColor { On | Off } ]

[ Dither { Halftone | ErrorDiffusion } ] [ Transparency

[ Raster { Device | ROP } ] [ Vector { Device | ROP }] ]

} ]

[ ScrollBars { On | Off } ]

[ Autoscroll { On | Off } ] [ Parent HWND ]

[ ReadOnly | Default Access ]

[ Table table_name Rec record_number ] [ Show | Hide ]

[ Smart Pan { On | Off } ]

[ SysMenuClose { On | Off } ]

[ Snap [ Mode { On | Off } ] [ Threshold { pixel_tolerance | Default } ]

Справочник MapBasic

573

Оператор Set Window

window_id целочисленный идентификатор окна или имя специльного (например, Statistics)

x расстояние от верхнего края рабочего поля окна MapInfo до верхнего края перемещаемого окна

y расстояние от левого края рабочего поля в окне MapInfo до левого края перемещаемого окна

paper_units строка с именем единицы измерений на экране (например, "cm" для сантиметров)

Предложение Font определяет стиль текста.

win_width ширина окна

win_height высота окна

new_title строка, задающая новый заголовок окна

help_file имя файла Справочника (например, в Windows "FILENAME.HLP")

context_ID целочисленный идентификатор контекста Справочника для задания раздела

printer_name имя принтера. Принтер может быть локальным или сетевым.

number is the number of copies of a print job that should be sent to the printer.

HWND целочисленный номер окна. Окно с номером HWND станет порождающим окном по отношению к окну Легенды, Статитстики, Информации, Линейки или Сообщений.

table_name имя открытой таблицы для показа в окне сообщений

record_number целое число типа Integer: значение от 1 и больше для показа определенной записи в окне Информации или 0 для показа сообщения "Нет записей"

Printer будет указывать окно, предназначаемое для печати.

Export будет указывать окно, предназначаемое для экспорта.

Default будут использоваться стандартные настройки печати/экспорта.

Name printer_name определяет имя используемого принтера.

Orientation Portrait (книжная) ориентирует бумагу для печати в книжной ориентации.

Orientation Landscape (альбомная) ориентирует бумагу для печати в альбомной ориентации.

Copies number указывает число копий для печати.

Papersize number информация о размере бумаги для данного окна. Эти числа(номера) универсальные для всех принтеров под Windows. Например, 1 соответствует размеру Letter, 5 соответствует размеру Legal. Этот номер может быть найден в файле MapBasic под названием PaperSize.def. Некоторые драйверы принтера (например, крупные плоттеры) могут использовать собственную нумерацию для идентификации размера бумаги, отличающуюся от той, которая в файле “PaperSize.def”. Учтите это при работе с плоттерами.

Border определяет будет ли отображаться черная рамка вокруг окна при печати и экспорте.

Truecolor определяет, будет ли создан 24–bit true color вывод, если это вообще возможно. Если truecolor отключен, вывод будет с 256 цветами.

Dither определяет какой метод растеризации будет использован, если надо отконвертировать 24–битное изображение в 256 цветов. Этот раздел используется при выводе растров и гридов. Растеризация призойдет, если truecolor отключен или если выводное устройство не может поддерживать 24–битные цвета.

Method это новое ключевое слово и определяет, будет ли печать проведена непосредственной передачей файла на принтер, или MapInfo создаст промежуточный Windows Enhanced

574

Справочник MapBasic

Оператор Set Window

Metafile и только потом пошлет его на принтер. Ранние версии MapInfo Professional всегда посылали файл прямо на устройство. Новый метод позволяет печатать карты с растрами, чего не было раньше.

Transparency RasterInternal удалено в версии 7.0; таким образом, можно работать с данными предыдущих версий баз сообщения об ошибке.

Transparency Raster определяет, как полупрозрачные пикселы будут отображаться. Выберите Device или ROP в зависимости от драйвера принтера или формата экспортного файла. Сначала попробуйте оба способа, сравните и сделайте потом выбор.

Transparency Raster ROP обозначает "Использовать метод ROP для отображения полупрозрачного растра". Для этой настройки можно воспользоваться командой (РЕЖИМ > ПАРАМЕТРЫ ВЫВОДА, ФАЙЛ > ПЕЧАТЬ > ДОПОЛНИТЕЛЬНО и ФАЙЛ > ЭКСПОРТ ОКНА > ДОПОЛНИТЕЛЬНО). Если выбран ROP, то полупрозрачное изображение прорисовывается с использованием растровой операции (ROP), обрабатывающей полупрозрачные пикселы. Этот метод используется для обработки полупрозрачного изображения на экране; однако он не всегда хорошо работает при печати. Проведите эксперимент и посмотрите, как драйвер принтера обрабатывает методом ROP. Если Вы экспортируете изображение, используя команду ЭКСПОРТ ОКНА, то лучше выбрать формат метафайла (EMF или WMF). Использование метода ROP допускает отображение любых данных под полупрозрачным слоем в их исходной форме. Например, векторные данные, находящиеся под полупрозрачными пикселами не будут растеризованы. В метафайлах метод ROP не будет прорисовывать любые данные в области растровых пикселов, также возможно отображение базового изображения.

Transparency Raster Device MapInfo не будет осуществлять специальные преобразования при выводе растров и гридов, содержащих прозрачность. Изображение генерируется тем же методом, что применяется для отображения на экране. Могут возникнуть некоторые проблемы при генерации вывода.

Transparency Vector Internal MapInfo будет делать специальную обработку когда выводится прозрачная заливки или прозрачные растровые символы.

Transparency Vector Device MapInfo будет делать специальную обработку когда выводится прозрачная заливки или прозрачные растровые символы. Могут возникнуть некоторые проблемы при генерации вывода.

Margins Пользователь может установить поля для принтера в виде вещественных значений в требуемых единицах. Эти значения могуб быть увеличены драйвером принтера если они меньше, чем физически допустимые поля для данного принтера.

Описание

Оператор Set Window используется для изменения размеров и положения окна, шрифта в окне, заданном параметром window_id.

Значение кода для этого параметра Вы можете получить, используя функции FrontWindow( )

и WindowID( ). Для использования оператора Set Window по отношению к специальным окнам, таким как "Статистика", можно использовать имена окон (например, Statistics) или имена кодов (например, WIN_STATISTICS), определенных в файле стандартных определений MAPBASIC.DEF. Не забудьте включить в свою программу оператор Include "MAPBASIC.DEF".

Справочник MapBasic

575

Имя окна
MapInfo
MapBasic Help Statistics Legend Info
Ruler
Message

Оператор Set Window

Cледующая таблица содержит имена окон и кодов окон, которые можно использовать в качестве параметра window_id.

Описание окна и его код

Окно программы MapInfo. Код: WIN_MAPINFO. Окно MapBasic. Код: WIN_MAPBASIC.

Окно программы WinHelp (Справка). Код: WIN_HELP. Окно "Статистика". Код: WIN_STATISTICS.

Окно "Легенда". Код: WIN_LEGEND.

Окно "Информация" (которое открывается при использовании инструмента Информация). Код:

WIN_INFO.

Окно "Линейка" (которое открывается при использовании инструмента Линейка). Код: WIN_RULER.

Окно "Сообщение" (которое открывается оператором Print). Код: WIN_MESSAGE.

Дополнительное предложение Position задает расположение окна на экране в рабочем наборе MI Pro. Верхний левый угол рабочего набора имеет позицию 0, 0. Дополнительные предложения Width и Height задают размер окна. Позиция окна и его размеры задаются в бумажных единицах “in” (дюймы) или “cm” (сантиметры). MapBasic стандартно использует дюймы, изменить эти единицы можно оператором Set Paper Units. Оператор Set Window

может изменить текущие единицы измерения, для этого надо включить дополнительное подпредложение Units в предложения Position, Width и/или Height.

Если оператор включает в себя дополнительное слово Max, то окно будет максимизировано (это действует на весь рабочий набор). Если оператор включает в себя дополнительное ключевое слово Min, то окно будет минимизировано (окно исчезнет, останется только иконка в нижней части экрана). Если окно уже минимизировано или максимизировано, и если оператор включает добавочное ключевое слово Restore, то окно будеп восстановлено в прежнем виде.

Если оператор включает в себя дополнительное ключевое слово Front, то MapBasic сделает окно активным; также будет установлен фокус окна. Окно станет активным сразу после кликанья на заголовке окна.

Оператор может всегда указывать предложение Position или предложение Front, независимо от типа окна. Таким образом, некоторые предложения в операторе Set Window применяются только к определенным типам окон. Например, окно Линейка не может изменять свой размер, максимизироваться или минимизироваться.

Для смены заголовка окна включите дополнительное предложение Title. Заголовок окна приложения (главный заголовок “MapInfo”) не может быть изменен иначе, чем при запуске runtime MI Pro.

576

Справочник MapBasic

Оператор Set Window

Предложение SysMenuClose позволяет отменить команду Закрыть (Close) в системном меню (меню, появляющемся при щелчке в верхнем левом углу окна). Отключение команды Закрыть действует только на пользовательский интерфейс; программы MapBasic могут отключать команду Закрыть оператором Close Window. Следующий пример отключения команды Закрыть для активного окна:

Set Window FrontWindow() SysMenuClose Off

Синтаксис предложения Help

Для управления окном Справки, задайте ключевое слово Help вместо целочисленного аргумента window_id. Например, следующий оператор покажет раздел 23 из пользовательского файла Справки:

Set Window Help File ”custom.hlp” ID 23

Предложение File help_file показывает, какой файл справки активен. В Windows, это действие автоматически показывает окно справки (если Вы не включили слово Hide). Если задать File Default, то MI Pro будет использовать стандартную справку MapInfo Professional, но не прорисует на экране файл справки. MI Pro имеет только один установленный файл справки, который применяется ко всем запущенным приложениям MapBasic. Если одно предложение устанавливает текущий файл справки, то и другие приложения могут им пользоваться.

Предложение Off отключает справку MI Pro, так что при нажатии F1 в MI Pro эффекта не будет. Используйте предложение Off если Вы интегрируете функциональность MI Pro в другое приложение (например, в программу Visual Basic), если Вы хотите, чтобы пользователь не видел справки MI Pro. (Справка MI Pro содержит ссылки к позициям меню MI Pro, которые могут не иметь действия в программе Visual Basic.)

Предложение Permanent заставляет MapInfo всегда пользоваться Справочником help_file,

даже если пользователь нажал F1 в диалоге MapInfo. (В среде Windows если предложения

Permanent нет, то MapInfo обращается к стандартному файлу Справки MAPINFOW.HLP как только пользователь нажмет F1 в диалоге MapInfo.) Эта установка действует до конца сеанса MapInfo или до первого оператора Set Window Help File.

Чтобы сразу открыть Справочник на нужном месте, задавайте слова Contents (для показа оглавления Справки) или ID (для показа нужной информации).

В состав пакета MapBasic не входят средства изготовления Справочников. Более подрбно Справочная система описана в Руководстве пользователя MapBasic.

Синтаксис для окон Карт и Отчетов

Предложение ScrollBars применимо только к окнам Карт и управляет показом строки (полосы) прокрутки.

Предложение Autoscroll применимо окнам Карт и Отчетов. По умолчанию, режим автоматической прокрутки действует в Картах и Отчетах, т.е. при выполнении операции с нажатой кнопкой мыши в окне Карты и Отчета, содержимое окна автоматически сдвигается вслед за мышью при приближении ее указателя к краю окна. Чтобы отключить автоматическую прокрутку, задайте Autoscroll Off. Функция WindowInfo( ) поможет определить, в каких окнах действует режим автоматической прокрутки.

Справочник MapBasic

577

Оператор Set Window

Smart Pan изменяет статус операции сдвига в окне. Когда Smart Pan включен для окна Карты или Отчета, то при сдвиге и прокрутке используется отключение растровой прорисовки для уменьшения бликов. Стандартное состояние для Smart Pan это отключенное.

Когда Smart Pan активизирован для окна Отчета, то перерисовка действует только при использовании инструмента Сдвиг.

Когда Smart Pan активизирован для окна Карты, то эффект будет зависеть от метода перемещения Карты. Инструмент Сдвиг автоматически прорисовывает область окна при использовании самого инструмента. Карта будет перемещаться медленнее, чем при отключенном режиме Smart Pan. Чем сложнее карта, тем медленнее она будет перемещаться. Прокрутка и автопрокрутка действует похоже на инструмент Сдвиг, но скорость прокрутки не влияет на точность сдвига. Когда команда Set Map используется для центрирования или сдвига изображения со включенной командой Smart Redraw, то изменения окна Карты при прорисовки произойдут без бликования.

Внимание: Если растровый режим прорисовкиизображения на экране отключен, то предложение Smart Pan в окне Карты ведет себя также как и в окне Отчета.

Синтаксис для вспомогательных окон (Легенда, Линейка и т.д.):

Предложение Parent, позволяющее задать новое порождающее окно для окон легенды, Статистики, Инфрмации, Линейки или Сообщений, действует только в Windows. Окно с номером window_id становится popup0окном, подчиненным окну с номером0указателем

HWND. Внимание: переподчинение окна таким способом изменяет значение ID для этого окна. Чтобы снова подчинить окно первоначальному “родителю”, MapInfo, задайте ноль в качестве HWND.

Предложения ReadOnly / Default Access применяются только к окну Информации и управляют возможностью изменения данных в нем. ReadOnly запрещает редактирование данных. Предложение Default Access снимает контроль со стороны MapBasic, и тогда уже действуют запреты или разрешения для самой таблицы. Это работает для главной легенды и картографических легенд, созданных операторами Create Legend или Create Cartographic Legend.

Предложение Table позволяет выбирать данные для показа в окне Информации (и только для него). Это предложение форсирует показ окна Информации.

Предложения Show и Hide управляют показом или скрытием окон, для которых эта операция существенна (например, для Линейки), но может применяться и для окна MapInfo.

Управление принтером

По умолчанию, окна распечатываются используя настройки системного принтера. Это может быть принтер Windows или настроенный в MI Pro принтер, в зависимости от установок пользователя. Использование предложения Name в приложении, рабочем наборе или окне MapBasic может изменить принтер для отдельного документа. Некоторые настройки для принтера также могут задаваться некоторыми другими командными предложениями. Таким образом, когда настройки принтера изменяются через пользовательский интерфейс, соответственно генерируются команды MapBasic. Подобные изменения настроек хранятся в рабочих наборах, а отменить их можно командой Set Window Printer Default.

578

Справочник MapBasic

Оператор Set Window

Коды аттрибутов, WIN_INFO_PRINTER_NAME, WIN_INFO_PRINTER_ORIENT или WIN_INFO_PRINTER_COPIES, также возвращаются функцией WindowInfo().

Пример

Set Window frontwindow()

Printer Name ”\\Discovery\HP 2500CP”

Orientation Portrait

Copies 10

Внимание: Чтобы узнать имя принтера, запустите MapInfo Professional, выполните ФАЙЛАСТРОЙКА ПЕЧАТИ. Нажмите кнопку Принтер. Используйте имя принтера из этого диалога.

Управление радиусом совмещения

Вы можете настроить радиус совмещения, измеряемый в пикселах для данного окна, вернуть стандартный размер радиуса совмещения для этого окна или получить информацию о текущем радиусе совмещения. Можно также включать/отключать режим совмещения для данного окна или запрашивать включен или нет режим совмещения для данного окна.

Настройки радиуса совмещения для обычного окна могут запрашиваться с использованием новых аттрибутов параметров в функции WindowInfo(). Теперь режим совмещения может настраиваться для каждого окна Карты или Отчета. Эти настройки сохраняются в рабочем наборе для каждого окна.

Пример

Dim win_id As Integer Open Table ”world” Map From world

win_id = FrontWindow()

Set Window win_id Width 5 Height 3

Смотрите также

Map, Browse, Graph, Layout, Set Paper Units

Справочник MapBasic

579

Функция Sgn( )

Функция Sgn( )

Назначение:

Распознает знак числа.

Синтаксис:

Sgn(num_expr)

где

num_expr – численное выражение.

Величина, полученная в результате:

-1, 0, или 1, тип Float.

Описание:

Функция Sgn( ) возвращает -1 (минус единица), если число, заданное выражением num_expr, отрицательно, 0, если число равно нулю, и 1 (единица), если число больше нуля.

Пример:

Dim x As Integer

x = Sgn( 0.5)

' x равно 1

'

Смотрите также:

Abs( )

580

Справочник MapBasic

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]