Страница 1 из 1

переменные в MapInfo

Добавлено: 08 янв 2013, 16:10
Клим
Доброго времени суток!
Подскажите пожалуйста как можно проверить объявлена или нет переменная окне MapBasic?

Re: переменные в MapInfo

Добавлено: 21 янв 2013, 19:16
Cancer
print <переменная>
Это есть побыть телепатом. Иначе уточняйте:
- откуда проверить (из этого же окна)?
- что должно быть результатом проверки? true/false или еще что-то?

Re: переменные в MapInfo

Добавлено: 25 янв 2013, 08:25
Клим
Я пишу программу на Delphi и отправляю команды MapInfo на выполнение определенных задач. Но все команды переправленные из Delphi воспринимаются MapInfo как прописанные в окне MapBasic. Задача проверить (true/false) объявлена переменная типа object или нет. Так как сама программа может запускаться неоднократно в ходе одной сессии работы MI то при попытке повторного объявить переменную возникают ошибки.

Re: переменные в MapInfo

Добавлено: 25 янв 2013, 13:13
thegeo
Думаю, что лучше вообще исключить необходимость такой проверки. Использовать объект MI в явном виде только в рамках отдельной процедуры, когда вы его полностью контролируете. Примерно так:

Sub SetNewBounds(ByVal nmLR As String)

Dim str As String = "dim ob as Object"
mi.do(Str)

str = "UnDim ob"
mi.do(Str)
End Sub

Этого вполне достаточно.
Все же вопрос с проверкой может возникнуть, если программа допускает возможность одновременной работы нескольких копий с одним экземпляром MI. Думаю, что здесь остается только программная обработка ошибок.

Re: переменные в MapInfo

Добавлено: 25 янв 2013, 14:43
Клим
thegeo спасибо.
Я таким образом и решал.
Возникают неудобства на этапе отладки программы (если процедура не доходит до конца). Приходится вручную в окне MB писать UnDim ob при каждом вылете в ходе процедуры.