www.map-info.ru :: Просмотр темы - Узнать посредством MapBas номер и название слоя
                               РќР° главную страницу сайта

 
                                
ВходВход    РегистрацияРегистрация    ПрофильПрофиль    ПользователиПользователи    ГруппыГруппы    FAQFAQ    ПоискПоиск  

 
   Список форумов www.map-info.ru | Форум - программирование в среде MapInfo Добавить ответ
Предыдущая тема :: Следующая тема  
Автор Сообщение
Alex



Зарегистрирован: 31.10.2008
Сообщения: 80

СообщениеДобавлено: Чт Июл 09, 2015 11:07 am    Заголовок сообщения: Узнать посредством MapBas номер и название слоя Добавить ответ со ссылкой на данный текст

Приветствую, уважаемая аудитория.
В теории посмотреть под каким номером в "Управление слоями" открыт тот или иной слой показалось простым делом. Есть на форуме общие ориентиры как и что делать.
Задача такая. Необходимо знать как называются слои и какие у них порядковые номера, которые присутствуют в "Управление слоями".
Создал такой код

Sub Main
dim i, q as integer,
nW as string

for i = 1 to 10

q = WindowID(i)
nW = LayerInfo(q,i,LAYER_INFO_NAME)

note
"i = " + i
+chr$(10)+
"q = " + q
+chr$(10)+
"nW = " + nW

next

End Sub

примечательно то, что когда i = 1, все переменные принимают свои значения, а при i = 2 появляется сообщение типа
"WindowID: Неправильный номер окна для 2"

Подскажите пожалуйста, как с этим бороться?
Спасибо.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
thegeo



Зарегистрирован: 17.01.2012
Сообщения: 119

СообщениеДобавлено: Чт Июл 09, 2015 3:17 pm    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

У вас одно окно карты и изображение этой карты формируют слои.

Sub Main
dim i, idw as integer,
nW as string
idw = frontWindow()
for i = 1 to MapperInfo(idw, MAPPER_INFO_LAYERS)
nW = LayerInfo(idw,i,LAYER_INFO_NAME)
print "i = " & i & " nW = " & nW
next
End Sub
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Alex



Зарегистрирован: 31.10.2008
Сообщения: 80

СообщениеДобавлено: Чт Июл 09, 2015 8:14 pm    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

Все работает как и требовалось.
Большое спасибо за помощь.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Alex



Зарегистрирован: 31.10.2008
Сообщения: 80

СообщениеДобавлено: Пн Июл 20, 2015 12:41 am    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

Возник еще такой вопрос.
Как определить открыта ли таблица, например t1.tab?
пока не важно показана ли она в виде списка или слоя карты.
Необходимо знать только t1.tab открыта или нет.
Спасибо.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
thegeo



Зарегистрирован: 17.01.2012
Сообщения: 119

СообщениеДобавлено: Пн Июл 20, 2015 2:26 pm    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

Например это можно сделать так:

function IsTabInMI (byval nameTab as string) as logical
'открыта ли таблица
dim num,i as smallint
dim s as string
IsTabInMI =false
num =NumTables()
if num<1 then exit function end if
for i=1 to num
s=TableInfo(i,TAB_INFO_NAME)
if s=nameTab then
IsTabInMI =true
exit for
end if
next
end function
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Alex



Зарегистрирован: 31.10.2008
Сообщения: 80

СообщениеДобавлено: Ср Июл 22, 2015 6:13 pm    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

Спасибо большое.
Выглядит как-то мудрёно для первооткрывателя.
Попробую разобраться.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
FedorinoFF



Зарегистрирован: 01.02.2007
Сообщения: 272
Откуда: Санкт-Петербург

СообщениеДобавлено: Чт Июл 23, 2015 7:55 pm    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

thegeo писал(а):
Например это можно сделать так:

function IsTabInMI (byval nameTab as string) as logical
'открыта ли таблица
dim num,i as smallint
dim s as string
IsTabInMI =false
num =NumTables()
if num<1 then exit function end if
for i=1 to num
s=TableInfo(i,TAB_INFO_NAME)
if s=nameTab then
IsTabInMI =true
exit for
end if
next
end function

ну так элементарно:
- перебираем имена открытых таблиц и ищем среди них нужное имя.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
   Список форумов www.map-info.ru | Форум - программирование в среде MapInfo Добавить ответ
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Top.Mail.Ru