- •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( )
Оператор Alter Button
Оператор Alter Button
Назначение:
Управляет выбором и доступностью кнопки на инструментальных панелях.
Синтаксис:
Alter Button { handler | ID button_id } [ { Enable | Disable } ]
[ { Check | Uncheck } ]
где
handler – обработчик, который уже назначен существующей кнопке (обработчиком может быть имя процедуры MapBasic и стандартный командный код из файла MENU.DEF, например, M_TOOLS_RULER или M_WINDOW_LEGEND);
button_id – идентификатор кнопки.
Описание:
Если оператор Alter Button использует обработчик (например, имя процедуры), то изменения затронут все кнопки, вызывающие этот обработчик. Если используется предложение ID, то MapInfo изменяет только кнопку с номером button_id.
Ключевое слово Disable делает кнопку недоступной. Кнопка закрашивается серым цветом и не реагирует на указание мышкой. Ключевое слово Enable возвращает кнопку в активное состояние.
Слова Check и Uncheck нажимают или отжимают кнопку типа ToggleButton (кнопку, для которой состояние выбора фиксируется). Ключевое слово Check назначает кнопке состояние нажатия; на экране эта кнопка будет зафиксирована нажатой. Например, для кнопки "Показать окно статистики":
Alter Button M_WINDOW_STATISTICS Check
Замечание: нажатие кнопки таким образом не означает автоматическое выполнение действий, закрепленных за кнопкой; так, например, выбор кнопки Показать/скрыть Статистику оператором Alter Button не открывает окно "Статистика", а только показывает эту кнопку нажатой на экране. Для выполнения действий кнопки в данном случае надо использовать соответствующие операторы, то есть открыть окно "Статистика" оператором Open Window Statistics.
Вы можете использовать слово Check для изменения состояния только для типа кнопок TooButton. Однако, изменение состояния нажатия на кнопку типа ToolButton не то же самое, что и выбор инструмента этой кнопкой. Для выбора инструмента после изменения состояния кнопки Вы можете использовать оператор Run Menu Command, например:
Run Menu Command M_TOOLS_RULER
Имя кода M_TOOLS_RULER, использованное в этом примере, определено в файле MENU.DEF – файле стандартных определений для системы меню MapInfo.
Для того, чтобы активизировать созданный инструмент, используется оператор Run Menu Com mand ID IDnum.
Смотрите также:
Alter ButtonPad, Create ButtonPad, Run Menu Command
Справочник MapBasic |
13 |
Оператор Alter ButtonPad
Оператор Alter ButtonPad
Назначение:
Показывает/скрывает инструментальную панель или добавляет/переопределяет в ней кнопку.
Синтаксис:
Alter ButtonPad { pad_name | ID pad_num }
[ Add button_definition [ button_definition ... ] ] [ Remove { handler_num | ID button_id } [, ... ] ] [ Title new_title ]
[ Width w ]
[ Position ( x, y ) [ Units unit_name ] ] [ { Show | Hide } ]
[ ToolbarPosition ( row, column ) ] [ { Show | Hide } ]
[ { Fixed | Float } ] [ Destroy ]
где
pad_name – имя панели (например, "Операции");
pad_num – идентификатор инструментальной панели (1 – для панели "Операции", 2 – для панели "Пенал", 3 – для панели "Программы", 4 – ”Команды”, 5 – “ODBC”);
button_id – уникальный идентификатор для новой кнопки;
handler_num – целочисленный код обработчика (например, M_TOOLS_RULER), определенный в файле MENU.DEF;
new_title – заголовок инструментальной панели; пользователь его видит, когда панель показывается в виде вспомогательного окна;
w – ширина панели, измеряется количеством кнопок;
x, y – координаты верхнего левого угла панели в "бумажных" единицах; unit_name – имя "бумажной" единицы (например, "in" – дюйм, “cm” – сантиметр).
row, column – задает положение инструментальной панели, когда она находится в состоянии строки инструментов (docked) (например, 0, 0 задает расположение строки инструментов, прижатой к левому краю, и самой верхней строкой, а 0, 1 – расположение второй строкой сверху).
Каждый параметр button_definition является либо ключевым словом Separator, либо группой предложений следующего синтаксиса:
{ PushButton | ToggleButton | ToolButton }
Calling { procedure | menu_code | OLE methodname | DDE server , topic } [ ID button_id ]
[ Icon n [ File file_spec ] ] [ Cursor n [ File file_spec ] ] [ DrawMode dm_code ]
[ HelpMsg msg ]
[ ModifierKeys { On | Off } ] [ { Enable | Disable } ]
[ { Check | Uncheck } ]
procedure – имя процедуры-обработчика, вызываемой при нажатии на кнопку.
menu_code – стандартный в MapInfo командный код из файла MENU.DEF (например, M_FILE_OPEN); MapInfo начнет выполнение соответствующей команды при нажатии на кнопку.
14 |
Справочник MapBasic |
Оператор Alter ButtonPad
methodname – строковая величина, задающая имя метода OLE. Синтаксис смотрите в описании оператора Create ButtonPad.
server, topic – строковая величина, задающая сервер DDE-связи и имя раздела (topic). Синтаксис смотрите в описании оператора Create ButtonPad.
button_id – назначает уникальный номер для кнопки. В дальнейшем этот номер можно использовать как: число, используемое при вызове Справки (Tag in Help); как идентификатор кнопки в ее процедуре-обработчике, когда один и тот же обработчик вызывают несколько кнопок; как параметр в операторе Alter Button.
Предложение Icon n задает пиктограмму, которая будет на кнопке. Здесь n может быть одним из специальных кодов файла ICONS.DEF (например, MI_ICON_RULER). Подпредложение File file_spec задает файл ресурсов изображений; в этом случае параметр n должен быть целочисленным идентификатором одного из ресурсов файла file_spec.
Предложение Cursor n задает картинку указателя, которая появится после выбора кнопки. Здесь n может быть одним из специальных кодов из файла ICONS.DEF (например, MI_CURSOR_ARROW). Это предложение может входить только в описание кнопки инструмента (тип ToolButtons). Подпредложение File file_spec задает имя файла ресурсов изображений; в этом случае параметр n должен быть целочисленным идентификатором одного из ресурсов файла file_spec.
Предложение DrawMode dm_code задает возможность инструмента рисовать (использование возможности передвигать мышку с нажатой клавишей) или только указывать (использование только возможности нажимать на клавишу мышки), при этом параметр dm_code должен быть одним из специальных кодов из файла ICONS.DEF (например, DM_CUSTOM_LINE). Это предложение может входить в описание кнопки инструмента (тип ToolButtons).
msg – строковая величина, задает текст подсказки, появляющейся в строке сообщений при указании на кнопку, а также может задавать текст для плавающей подсказки ToolTip. Первая часть строки msg используется строкой сообщений. Если величина msg включает в себя литеры \n, то текст, следующий за ними, используется подсказкой ToolTip.
Предложение ModifierKeys управляет использованием клавиш SHIFT и CTRL в режиме рисования, сопровождающемся прорисовкой образа объекта ("rubber-band"), инструментом кнопки типа Tool Button. По умолчанию применяется режим Off, не использующий клавиши SHIFT и CTRL.
Описание:
Оператор Alter ButtonPad используется для изменения состояния отображения на экране инструментальных панелей и их изменения. Более подробная информации об инструментальных панелях содержится в 6 главе Руководства пользователя MapBasic.
Для того, чтобы показать панель, в операторе используется ключевое слово Show; для того, чтобы ее скрыть, – ключевое слово Hide. Пользователь может показывать и убирать с экрана инструментальные панели с помощью диалога команды НАСТРОЙКА > ИНСТРУМЕНТАЛЬНЫЕ ПАНЕЛИ.
Ключевые слова Fixed и Float задают состояние панели, в котором она показывается на экране: закрепленной к верхнему краю окна или плавающей в виде вспомогательного окна.
Предложение Position задает расположение панели на экране, если она находится в плавающем состоянии. Предложение ToolbarPosition задает расположение панели, приклепленной к верхнему
Справочник MapBasic |
15 |
Оператор Alter ButtonPad
краю рабочего окна.
С помощью ключевого слова Destroy Вы можете убрать панель насовсем, то есть имя этой панели больше не будет отображаться в списке диалога команды НАСТРОЙКА > ИНСТРУМЕНТАЛЬНЫЕ ПАНЕЛИ.
Оператор Alter ButtonPad может добавлять кнопки в инструментальные панели Операции и Пенал. Существуют три типа кнопок, которые можно добавить оператором:
тип PushButton – кнопка, нажатие на которую приводит к определенному действию, например, к открытию диалога;
тип ToggleButton – кнопка с фиксированным выбором, то есть после нажатия на кнопку она остается в состоянии выбора (на панели она "утоплена"), для отмены выбора надо нажать на нее снова;
тип ToolButton – кнопка инструмента, который пользователь может использовать только в окне Карты или Отчета.
Если Вы создаете кнопку с ключом Disable, новая кнопка будет недоступна для выбора (недоступная кнопка закрашивается серым). Доступной кнопку можно сделать следующим оператором Alter Button. Однако, если обработчиком (handler) кнопки определена стандартная в MapInfo команда, MapInfo автоматически изменит доступность кнопки в зависимости от возможности выполнения этой команды.
Если Вы создаете кнопку типа ToolButton или типа ToggleButton с ключом Check, то в начале работы с панелью кнопка уже "утоплена".
Если пользователь нажал на кнопку типа ToolButton, MapInfo автоматически вызывает соответствующий обработчик инструмента, который будет действовать до тех пор, пока пользователь не отменит его (например, клавишей ESC). В процедуре обработчика может быть использована функция CommandInfo(_) для определения места, на которое пользователь указал мышкой. Если две или более инструментальные кнопки вызывают один обработчик, то функция CommandInfo(_) поможет Вам определить идентификатор кнопки, вызвавший его.
Встроенные картинки для кнопок и указателя мышки
Предложение Icon определяет пиктограмму, которую пользователь увидит на кнопке. Если опущено подпредложение File, то параметр n должен быть одним из кодов, имена которых определены в файле ICONS.DEF (например, MI_ICON_RULER).
Совет: MapInfo имеет много встроенных иконок для кнопок, не являющихся частью нормального пользовательского интерфейса. Просмотреть эти иконки Вы можете, запустив программу ICONDEMO.MBX. Эта программа позволяет просмотреть иконки и скопировать код иконки в почтовый ящик Windows (clipboard) для дальнейшего использования в Вашей программе.
В Windows подпредложение File file_spec ссылается на DLL-файл, который содержит ресурсы растровых изображений, а параметр n в предложении Icon является идентификатором ID одного из них. Более подробно создание новых кнопок в Windows описано в 11 главе Руководства пользователя MapBasic.
Для кнопок типа ToolButton Вы также можете определить картинку, которую примет указатель мышки в то время, пока активен инструмент, вызванный этой кнопкой. Имена возможных кодов для этого определены в файле ICONS.DEF (например, MI_CURSOR_CROSSHAIR или MI_CURSOR_ARROW).
16 |
Справочник MapBasic |
Оператор Alter ButtonPad
Правила использования собственных ресурсов для указателя в предложении Cursor такие же, как при определении пиктограммы кнопки в предложении Icon. За тем исключением, что файл стандартных кодов для указателя в системе Macintosh называется CURS.
Режимы рисования
Определение ToolButton может включать предложение DrawMode, которое задает возможность указывать, перемещая инструмент (например, рисование линии) или только одним нажатием на клавишу мыши (например, рисование точечного объекта). В следующей таблице перечислены возможные режимы рисования. Имена для режимных кодов определены в файле ICONS.DEF.
Значения dm_code |
|
Описание режима |
DM_CUSTOM_POINT |
|
Инструмент может только указывать, а не рисовать. |
|
||
DM_CUSTOM_LINE |
|
При рисовании инструментом от указателя тянется прямая |
|
|
линия, закрепленная другим концом в точке, в которой была |
|
|
нажата клавиша мышки. |
DM_CUSTOM_RECT |
|
При рисовании инструментом указатель растягивает |
|
|
прямоугольник, закрепленный противоположным по диагонали |
|
|
углом в точке, в которой была нажата клавиша мышки. |
DM_CUSTOM_CIRCLE |
|
При рисовании указатель растягивает окружность. |
DM_CUSTOM_ELLIPSE |
|
При рисовании инструментом указатель растягивает эллипс. Если |
|
|
добавлено предложение ModifierKeys, то при нажатой клавише |
|
|
SHIFT будет растягиваться окружность. |
DM_CUSTOM_POLYGON |
|
Рисует многоугольник (полигон). Чтобы узнать, какой объект был |
|
|
нарисован пользователем, надо вызвать функцию: Command |
|
|
Info(CMD_INFO_CUSTOM_OBJ). |
DM_CUSTOM_POLYLINE |
|
Рисует ломаную (полилинию). Чтобы узнать, какой объект был |
|
|
нарисован пользователем, надо вызвать функцию: Command |
|
|
Info(CMD_INFO_CUSTOM_OBJ). |
Все режимы рисования, исключая режим DM_CUSTOM_POINT, поддерживают режим автопрокрутки, который позволяет автоматически перемещать окно Карты или Отчета при операциях выбора и рисования с участием мыши. Отключить автопрокрутку можно оператором Set
Window.
Замечание: Переключение автопрокрутки не доступно пользователю MapInfo. Его можно переключать только из приложения MapBasic. Если создаваемый инструмент имеет следующее предложение:
Calling M_TOOLS_SEARCH_POLYGON
то инструмент может рисовать многоугольник. Когда пользователь дважды укажет мышкой для закрытия полигона, MapInfo выбирает все объекты (с доступных слоев Карты), попавшие в многоугольник. Многоугольник не сохраняется.
Пример 1:
Следующие операторы показывают инструментальную панель "Операции" и скрывают панель
Справочник MapBasic |
17 |
Оператор Alter ButtonPad
"Пенал":
Alter ButtonPad "Операции" Show
Alter ButtonPad "Пенал" Hide
Пример 2:
Следующий пример прикрепляет панель "Операции" к верхнему краю рабочего окна:
Alter ButtonPad ”Операции” Fixed ToolbarPosition(0,0)
Пример 3:
Теперь переведем панель "Операции" в плавающее состояние и поместим ее на расстоянии полдюйма от верхнего и левого краев экрана.
Alter ButtonPad ”Операции” Float Position(0.5,0.5) Units ”in”
Пример 4:
Прикладная программа из стандартной поставки SCALEBAR содержит оператор Alter ButtonPad, который добавляет кнопку типа ToolButton на инструментальную панель "Программы" (идентифицирумая “ID 3”).
Alter ButtonPad ID 3
Add
Separator
ToolButton
Icon MI_ICON_CROSSHAIR
HelpMsg "Рисует масштабную линейку в окне Карты\nМасштабная линейка" Cursor MI_CURSOR_CROSSHAIR
DrawMode DM_CUSTOM_POINT
Calling custom_tool_routine
Show
Заметьте, что ключевое слово Separator вставляет пустое пространство между последней кнопкой панели "Программы" и новой "+" кнопкой.
Использование ID-номеров вместо названий панелей позволяет создавать приложения, не зависящие от языковой версии MapInfo.
Смотрите также:
Alter Button, ButtonPadInfo(_), Create ButtonPad
18 |
Справочник MapBasic |
Оператор Alter Cartographic Frame
Оператор Alter Cartographic Frame
Назначение:
Оператор Alter Cartographic Frame изменяет положение, заголовок, подзаголовок, рамку и стиль существующего раздела легенды, созданной оператором Create Cartographic Legend. (Для изменения размера, позиции или заголовка окна легенды, используйте оператор Set Window.)
Синтаксис:
Alter Cartographic Frame
[ Window legend_window_id ] Id { frame_id }
[ Position ( x , y ) [ Units paper_units ] ] [ Title [ frame_title ] [ Font... ] ]
[ SubTitle [ frame_subtitle ] [ Font... ] ] [ Border Pen... ]
[ Style [ Font... ]
[ ID { id } Text { style_name } ] [Line Pen... | Region Pen... Brush...
| Symbol Symbol... ] ] [ , ... ]
legend_window_id - это челочисленный идентификатор окна, который Вы можете получить при вызове функций FrontWindow() и WindowId( ).
frame_id - это индекс ID раздела легенды. Вы не можете использовать здесь имя слоя. Например, три раздела легенды могут иметь индексы ID 1, 2 и 3.
frame_title - это строковая величина, определяющая заголовок раздела легенды. frame_subtitle - это строковая величина, определяющая подзаголовок раздела легенды.
id - это положение внутри списка стилей для данного раздела. В настоящее время нет функций MapBasic, которые могут дать информацию о номере стиля в разделе легенды.
style_name - это строковая величина, которая отображает следующий за каждым символ для раздела с указанным индексом ID. Символ ”#” будет замещаться именем слоя. Символ % будет замещаться текстом “Линия”, “Точка, “Полигон”, в соответствии с типом символа. Например, “% of #” будет заменено на “Region of States” для раздела легенды, соответствующей слою states.tab.
Описание:
Если предложение Window не определено, MapInfo будет использовать самое верхнее окно легенды. Предложение Position контролируетположение раздела в окне легенды. Верхний левый угол окна легенды имеет позицию 0, 0. Положение измеряется в “бумажных” единицах, таких как “in” (дюймы) или “cm” (сантиметры). MapBasic имеет по умолчанию установку в дюймах; программа MapBasic может поменять единицы, используя оператор Set Paper Units. Оператор Alter Cartographic Legend может изменить единицы измерения с помощью подпредложения Units в предложении Position. Предложения Title и SubTitle вводят новый текст, новый шрифт или и то и другое.
Предложение Style должно содержать список определений для стилей, отображающихся в разделе. Вы можете только обновлять Style для собственного стиля. Вы можете обновлятьText для любого стиля. Нет возможности добавлять или удалять стили для любых типов разделов легенды.
Смотрите также:
Create Cartographic Legend, Set Cartographic Legend, Add Cartographic Frame, Remove Carto graphic Frame
Справочник MapBasic |
19 |
Оператор Alter Control
Оператор Alter Control
Назначение:
Изменяет состояние элемента диалога, составленного приложением.
Синтаксис:
Alter Control id_num
[ Title { title | From Variable array_name } ] [ Value value ]
[ { Enable | Disable } ] [ { Show | Hide } ]
[ Active ]
где
id_num – целочисленный идентификатор одного из элементов активного диалога в активном диалоге;
title – новый заголовок для элемента диалога, строковая величина;
array_name – имя или массив величин, используемый для элементов типа ListBox, MultiListBox,
RadioGroup и PopupMenu;
value – новое значение для элемента диалога.
Предупреждение:
Вы не можете использовать этот оператор в окне MapBasic.
Описание:
Оператор Alter Control изменяет атрибуты элемента активного диалога, окно которого было открыто оператором Dialog. Применение оператора возможно только пока диалоговое окно открыто, т. е. в специальной подпрограмме, называемой процедурой-обработчиком элемента диалога, вызов которой учитывается при создании диалога. Если на экране находятся два или более диалоговых окон, то оператор воздействует на активное окно, которое лежит поверх остальных.
Параметр id_num определяет элемент диалога, который будет изменяться. Значение параметра соответствует значению одноименного параметра в операторе Dialog при создании элемента (предложение ID id_num).
Изменение состояния и атрибутов элемента диалога производится при помощи предложений Title, Value, Enable/Disable, Hide/Show, Active. Оператор может использовать либо одно из этих предложений, либо одновременно несколько, либо все. То есть одновременно оператор Alter Control может изменить имя, значение и режим доступа элемента диалога.
Однако, не все атрибуты могут меняться для каждого типа элемента диалога. Например, для элемента StaticText не может быть изменен режим доступа, или присвоено значение, так как этот элемент таких атрибутов не имеет. Элемент типа Button, напротив, эти атрибуты имеет, поэтому они могут меняться оператором Alter Control.
Предложение Title назначает текст для большинства элементов (исключение составляют элементы типа Picker и EditText; текст элемента EditText определяется значением через предложение Value). Если Вы меняете текстовый атрибут для элементов типа ListBox, MultiListBox, RadioGroup или PopupMenu, предложение Title From Variable может читать новое содержимое элемента из строкового массива переменных.
20 |
Справочник MapBasic |
Оператор Alter Control
Ключевое слово Active используется только для элемента EditText. Оператор Alter Control... Active помещает курсор в текстовое окошко элемента.
Ключевое слово Hide прячет элемент, оставляя пустое место в окне диалога на его месте. Показать вновь элемент можно, используя ключевое слово Show.
Для полной отмены выбора в списке элемента MultiListBox определите значение элемента (параметр value) равным нулю. Для того, чтобы добавить к текущему выбору в списке элемента Mul tiListBox еще одну строку, выполните оператор Alter Control с положительным значением, соответствующим номеру строки в списке.
Пример:
Следующая программа создает диалог с двумя флажками и кнопками "OK" и "Отмена" ("Cancel"). Когда диалог открывается, кнопка "OK" не активна (окрашена серым). Кнопка становится доступной пользователю, когда он установит один или оба флажка.
Include "mapbasic.def"
Declare Sub Main
Declare Sub checker
Sub Main
Dim browse_it, map_it As Logical
Dialog
Title "Показать файл"
Control CheckBox
Title "Показать в окне Списка"
Value 0
Calling checker
ID 1
Into browse_it
Control CheckBox
Title "Показать в окне Карты"
Value 0
Calling checker
ID 2
Into map_it
Control CancelButton
Control OKButton
ID 3
Disable
If CommandInfo(CMD_INFO_DLG_OK) Then
'
' ... действие при нажатии кнопки "OK"...
'
End If
End Sub
Sub checker
'Если хотя бы один из флажков установлен,
'кнопка "OK" становится активной; иначе она неактивна.
Справочник MapBasic |
21 |
Оператор Alter Control
If ReadControlValue(1) Or ReadControlValue(2) Then
Alter Control 3 Enable
Else
Alter Control 3 Disable
End If
End Sub
Смотрите также:
Dialog, Dialog Preserve, ReadControlValue( )
22 |
Справочник MapBasic |