Страница 1 из 1
					
				Где имена таблиц
				Добавлено: 03 мар 2009, 12:05
				 pogoreli
				В процедуре требуется выбрать нужные из открытых таблиц, хотел поместить их имена в выпадающий список не могу найти где взять их. В самом МапИнфо при открытии таблиц или создании есть же где-то список имен как до него добраться подскажите кто знает?
			 
			
					
				Re: Где имена таблиц
				Добавлено: 03 мар 2009, 13:22
				 Parlament
				Я так понимаю речь идет о этом?
Теория
Назначение 
Часть оператора Dialog. Отвечает за создание раскрывающегося меню.
Синтаксис
Control  PopupMenu 
	[ Position  x , y ]
	[ Width  w ]   
	[ ID  control_ID ] 
	[ Calling  handler ] 
	[ Title  { str_expr  |  From Variable  str_array_var }  ] 
	[ Value  i_selected ] 
	[ Into  i_variable ] 
	[ Disable  ]  
x, y – координаты левого верхнего угла окошка меню в окне диалога в специальных единицах измерения диалога (смотрите подраздел в описании оператора Dialog);
w – ширина окошка в единицах измерения диалога, по умолчанию 80;
control_ID – целое число, которое должно быть уникальным по отношению к остальным идентификаторам элементов активного диалога;
handler – имя процедуры-обработчика, которая запускается при изменении выбора в списке;
str_expr – строковое выражение, которое задает текст строк списка меню, где элементы списка разделены точкой с запятой (;);
str_array_var – имя массива строковых переменных;
i_selected – короткое целое число, задающее номер элемента списка меню , который будет показан в окошке при открытии диалога, по умолчанию будет показан первый элемент;
i_variable – имя переменной типа SmallInt, которая будет использоваться для сохранения номера выбранного в меню элемента после закрытия диалога.
Ключевое слово Disable делает меню недоступным для выбора (закрашивается серым).
Описание
Ключевое слово PopupMenu в предложении Control оператора Dialog позволяет создавать в диалоге меню, представляющее собой однострочное окошко с кнопкой справа. Нажатие на кнопку раскрывает комбинированное окошко списка, в котором пользователь может выбрать строчку. Выбранная строка будет отображена в окошке.
Предложение Title задает список элементов меню. Если за словом Title задан список текстов в кавычках, через точку с запятой, то каждый текст будет определять одну строчку списка. Например:
Title  "Город;Область;Территория;Регион;Вся страна" 
Список в предложении Title можно также задавать массивом. В следующем фрагменте "s_optionlist" – имя строкового массива. 
Title  From Variable  s_optionlist
Пример 
  Control PopupMenu
    Title "Город;Область;Территория;Регион;Вся страна"
    Value 2
    ID 5
    Into mapscope
    Position 10, 150
Вообще заводишь массив.. и суешь его в этот PopupMenu...  и дальше работаешь с массивом =)
P.S. Вроди так..
			 
			
					
				Re: Где имена таблиц
				Добавлено: 03 мар 2009, 15:25
				 Parlament
				SelectionInfo(SEL_INFO_TABLENAME)
Узнаем имя таблицы =)
			 
			
					
				Re: Где имена таблиц
				Добавлено: 04 мар 2009, 06:50
				 pogoreli
				Благодарю. Вот как раз PopupMenu им и пользуюсь, но что бы массивчик то заполнить надо взять от куда-то эти имена таблиц. Дело в том что не я их открываю. Мое приложение работает как отдельное дополнение к обычной работе MapInfo. т.е. оператор может что угодно делать открывать какие угодно таблицы и создавать объекты, но для обработки моему приложению нужно сунуть две именно те таблицы. Есть простой выход обзывать нужные таблицы всегда одними и теми же именами тогда я не буду морочить голову и буду брать их по именам. Но это не, так сказать, грамотно и ограничивает свободу оператору. Вот если бы знать где есть функция или как зовут ее, что бы она возвращала, например, список ВСЕХ имен открытых таблиц. А текущую таблицу одну мне не трудно узнать.
			 
			
					
				Re: Где имена таблиц
				Добавлено: 04 мар 2009, 08:23
				 Boris
				NumTables( ) function 
Purpose 
Returns the number of tables currently open. 
----------------
TableInfo( ) function 
Purpose 
Returns information about an open table. 
Syntax 
TableInfo( table_id, attribute )  
table_id is a string representing a table name, 
a positive integer table number, or 0 (zero). 
attribute is an integer code indicating which aspect of the table to return.
TAB_INFO_NAME  -  String result, indicating the name of the table. 
 ----
цикл от 1 до NumTables( ) - и будет вам ваш список. 

 
			 
			
					
				Re: Где имена таблиц
				Добавлено: 04 мар 2009, 11:50
				 pogoreli
				Спасибо, с последним ответом получилось, мап в порядковом возрастании устанавливает id для каждой из открытых таблиц. А по TableInfo имена можно получить. Благодарю.