mapbasic - вызов стандартной процедуры mapinfo
- Juls
- Интересующийся
- Сообщения: 49
- Зарегистрирован: 02 авг 2010, 10:30
- Репутация: 1
mapbasic - вызов стандартной процедуры mapinfo
Здравствуйте
Помогите пожалуйста со следующим вопросом:
мне нужно из процедуры вызвать стандартный инструмент панели мапинфо. с вызовом я разобралась, как потом передать управление обратно процедуре?
допустим:
sub somesub
set map redraw off
set map layer 0 editable on selectable on
run menu command 1710
set map redraw on
end sub
как после выполнения команды run menu command сохранить то, что было добавлено на карте при помощи стандартного инструмента?
Помогите пожалуйста со следующим вопросом:
мне нужно из процедуры вызвать стандартный инструмент панели мапинфо. с вызовом я разобралась, как потом передать управление обратно процедуре?
допустим:
sub somesub
set map redraw off
set map layer 0 editable on selectable on
run menu command 1710
set map redraw on
end sub
как после выполнения команды run menu command сохранить то, что было добавлено на карте при помощи стандартного инструмента?
- asgs
- Участник
- Сообщения: 89
- Зарегистрирован: 04 авг 2010, 06:35
- Репутация: 1
- Контактная информация:
Re: mapbasic - вызов стандартной процедуры mapinfo
Управление и так перейдет обратно в процедуру, вызывающую функцию.
Сохранить таблицу - Commit Table. Впрочем, с косметического слоя, как в данном случае, можно сохранить только в рабочем наборе, либо перенести косметику в таблицу, где объекты и сохранятся.
ЗЫ И еще сильно рекомендовал бы подключать файл menu.def (Include "menu.def") и использовать вместо целочисленных строковые идентификаторы команд, чтобы потом не вспоминать по полчаса, что имелось в виду под command 1710
ЗЗЫ И кстати, сохранять что-либо автоматически после выполнения одной функции - плохая идея. Проверено многократно.
Сохранить таблицу - Commit Table. Впрочем, с косметического слоя, как в данном случае, можно сохранить только в рабочем наборе, либо перенести косметику в таблицу, где объекты и сохранятся.
ЗЫ И еще сильно рекомендовал бы подключать файл menu.def (Include "menu.def") и использовать вместо целочисленных строковые идентификаторы команд, чтобы потом не вспоминать по полчаса, что имелось в виду под command 1710

ЗЗЫ И кстати, сохранять что-либо автоматически после выполнения одной функции - плохая идея. Проверено многократно.
Злобный йожег
- Juls
- Интересующийся
- Сообщения: 49
- Зарегистрирован: 02 авг 2010, 10:30
- Репутация: 1
Re: mapbasic - вызов стандартной процедуры mapinfo
уже делала, но таблица после закрытия остается пустой.Сохранить таблицу - Commit Table. Впрочем, с косметического слоя, как в данном случае, можно сохранить только в рабочем наборе, либо перенести косметику в таблицу, где объекты и сохранятся..
хорошо бы, если только полчасаЗЫ И еще сильно рекомендовал бы подключать файл menu.def (Include "menu.def") и использовать вместо целочисленных строковые идентификаторы команд, чтобы потом не вспоминать по полчаса, что имелось в виду под command 1710

подскажите, как лучше сделать, чтобы объекты добавленные пользователем потом могли участвовать в sql запросах?ЗЗЫ И кстати, сохранять что-либо автоматически после выполнения одной функции - плохая идея. Проверено многократно.
- asgs
- Участник
- Сообщения: 89
- Зарегистрирован: 04 авг 2010, 06:35
- Репутация: 1
- Контактная информация:
Re: mapbasic - вызов стандартной процедуры mapinfo
Опишите Вашу задачу более полно, так проще будет подсказывать
Не исключено, что нечто подобное я уже решал и есть готовые решения.
Про участие объектов в запросе - теоретически, к объекту можно обратиться сразу после его добавления в таблицу, даже без сохранения этой самой таблицы.
Сохранить объекты с косметического слоя в таблицу Карта->Сохранить косметику... Дальше будет диалог с выбором таблицы.

Про участие объектов в запросе - теоретически, к объекту можно обратиться сразу после его добавления в таблицу, даже без сохранения этой самой таблицы.
Сохранить объекты с косметического слоя в таблицу Карта->Сохранить косметику... Дальше будет диалог с выбором таблицы.
Злобный йожег
- Juls
- Интересующийся
- Сообщения: 49
- Зарегистрирован: 02 авг 2010, 10:30
- Репутация: 1
Re: mapbasic - вызов стандартной процедуры mapinfo
пользователь рисует на карте область, после этого нужно сделать выбор всего что в эту область попало.
область сохранять в таблице не нужно.
задача такая, нужно сделать это средствами мипанфо и мапбэйсика.
область сохранять в таблице не нужно.
задача такая, нужно сделать это средствами мипанфо и мапбэйсика.
- asgs
- Участник
- Сообщения: 89
- Зарегистрирован: 04 авг 2010, 06:35
- Репутация: 1
- Контактная информация:
Re: mapbasic - вызов стандартной процедуры mapinfo
Выбирать предполагается из какой-то определенной таблицы, или из всех открытых в карте?
Во втором случае стандартно выбрать не получится, выборка возможна максимум из одной таблицы.
А для первого случая стандартная кнопка "Выбор в полигоне" не годится?
Во втором случае стандартно выбрать не получится, выборка возможна максимум из одной таблицы.
А для первого случая стандартная кнопка "Выбор в полигоне" не годится?
Злобный йожег
- Juls
- Интересующийся
- Сообщения: 49
- Зарегистрирован: 02 авг 2010, 10:30
- Репутация: 1
Re: mapbasic - вызов стандартной процедуры mapinfo
из нескольких таблиц, открытых в карте,
стандарный "выбор в полигоне" не годится..
стандарный "выбор в полигоне" не годится..
- asgs
- Участник
- Сообщения: 89
- Зарегистрирован: 04 авг 2010, 06:35
- Репутация: 1
- Контактная информация:
Re: mapbasic - вызов стандартной процедуры mapinfo
В таком случае есть два пути с рисованием области.
1 - Рисовать область стандартным инструментом в косметическом слое, выделять ее (к выделенному объекту на косметике получить доступ можно по SelObj = Selection.obj), затем по нажатию кнопки (которую нужно еще добавить
) в цикле проходиться по слоям активной карты и выполнять Select * From layer_name Into SelTable_i Where obj Intersects SelObj, где i - номер слоя. Имя таблицы в слое можно получить по LayerInfo(). В этом случае получится несколько временных таблиц, в которых будут содержаться объекты таблиц физических, входящие в выделенный объект. Минусы - таблицы будут плодться в больших количествах, в идеале хорошо бы вести их список и перед началом следующей выборки их нафиг закрывать.
2 - Делать кнопку типа ToolButton с типом DM_CUSTOM_POLYGON и в ее обработчике получить по CommandInfo(CMD_INFO_CUSTOM_OBJ) собственно объект, по которому будет проводиться выборка. Далее все по пункту 1.
Вот как-то так.
1 - Рисовать область стандартным инструментом в косметическом слое, выделять ее (к выделенному объекту на косметике получить доступ можно по SelObj = Selection.obj), затем по нажатию кнопки (которую нужно еще добавить

2 - Делать кнопку типа ToolButton с типом DM_CUSTOM_POLYGON и в ее обработчике получить по CommandInfo(CMD_INFO_CUSTOM_OBJ) собственно объект, по которому будет проводиться выборка. Далее все по пункту 1.
Вот как-то так.
Злобный йожег
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя