Страница 1 из 1
создание кнопок
Добавлено: 21 янв 2011, 11:39
arslanKZN
Здравствуйте!
Возможно ли создать на Мапинфо,например,кнопку,которая связана с SQL-запросом,по нажатию которой выделяются определнные области.
Спасибо!
Re: создание кнопок
Добавлено: 21 янв 2011, 12:42
asgs
Разумеется, можно. В обработчике нажатия кнопки пишете тот самый нужный запрос, и будет всем щастье

Re: создание кнопок
Добавлено: 21 янв 2011, 13:35
arslanKZN
asgs писал(а):Разумеется, можно. В обработчике нажатия кнопки пишете тот самый нужный запрос, и будет всем щастье

Это нужно проделывать с помощью MapBasic?
Спрашиваю,т.к. не имел с ней дело..
...............
нужно создать пользовательский интерфейс типа этого:
но только попроще.Просто кнопка(для начала)
Re: создание кнопок
Добавлено: 21 янв 2011, 14:25
asgs
Да, MapBasic. Картинок в диалоге не обещаю, а остальные стандартные элементы управления там есть.
Re: создание кнопок
Добавлено: 21 янв 2011, 14:53
arslanKZN
Так..Нашел несколько программ,с пом. которых можно легко рисовать диалоговые окна:

Вопрос следующий: как связать нажатие кнопки ок с sql запросом?
Re: создание кнопок
Добавлено: 21 янв 2011, 14:58
Andrew
arslanKZN писал(а):Вопрос следующий: как связать нажатие кнопки ок с sql запросом?
Sub Dialog
Dialog
Title "***"
Control StaticText
Title "Запрос"
Position 5, 10
' Ваш функционал
Control OKButton
Control CancelButton
If commandInfo(CMD_INFO_DLG_OK) Then
Call OOO
End If
End Sub
Sub OOO
'текст запроса
End Sub
Re: создание кнопок
Добавлено: 21 янв 2011, 20:31
arslanKZN
В каком виде mb понимает запросы:в виде
select * from table where ID > 10 ?
И как сделать открытие файла .qry
выдает ошибку
Код: Выделить всё
(window3.mb:3) No prototype declared for Sub procedure or Function Dialog.
(window3.mb:19) Invalid Sub procedure name: OOO.
(window3.mb:24) No prototype declared for Sub procedure or Function OOO.
Re: создание кнопок
Добавлено: 22 янв 2011, 13:20
arslanKZN
Ошибка выходила,т.к. не подключал mapbasic.def
Решил проблему свою,пока такой простой вариант.Думаю,сделать с поиском по названию клада,с радокнопками,флажками и прочей лобудой
Код: Выделить всё
Include "mapbasic.def"
Declare Sub Main
Declare Sub zapros
Global tip_klada As SmallInt
Sub Main
Dialog
Title "Окно"
Width 175
Height 83
Control OkButton
Width 35
Height 11
Position 41, 36
Control CancelButton
Width 37
Height 12
Position 86, 36
Control StaticText
Title "Выберите тип монет"
Width 67
Height 8
Position 5, 8
Control PopupMenu
Title "Новгородские;Киевские"
Width 58
Height 10
Position 96, 8
ID 20
Into tip_klada
If CommandInfo(CMD_INFO_DLG_OK) Then
Call zapros
End If
End Sub
Sub zapros
If tip_klada=1 Then
Select * from клады_общая where Губерния_область_старое = "Новгородская губерния" into Selection
End If
If tip_klada=2 Then
Select * from клады_общая where Губерния_область_старое = "Киевская губерния" into Selection
End If
Browse * From Selection
End Sub
Re: создание кнопок
Добавлено: 24 янв 2011, 13:29
arslanKZN
У меня вопрос:
как получить идентификатор карты?Пример:если в mapBasic прописать код
Set Map Window 160792968 Layer 2 Display Graphic
то все ок,работает.А вот если перезапустить программу Мапинфо,то уже код получается другой.
сделал так:
Set
Map Layer 4 Display Global Global Symbol MakeSymbol(56,BLACK,9)
теперь встала проблема такая:
Заранее пределяю глоб переменную тип symbol.При выборе значка из SymbolPicker сохраняю ее в мою переменную.Как применить ее?Если писать
выходит ошибка,что нельзя использовать неинициализированну переменную my_symbol.
Re: создание кнопок
Добавлено: 06 мар 2011, 18:54
arslanKZN
Не стал плодить темы,возможно ли конвертировать полученные программы в exe?
Re: создание кнопок
Добавлено: 06 мар 2011, 19:20
Boris
arslanKZN писал(а):Не стал плодить темы,возможно ли конвертировать полученные программы в exe?
и да, и нет.
нет - на прямую формат MBX в EXE не превращается.
да - через любой язык программирования можно посылать те же самые команды MAPBASIC'а работающей копии MapInfo.
Исключения - операторы циклов и ветвления ( if и т.п.)