Страница 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 :D
Решил проблему свою,пока такой простой вариант.Думаю,сделать с поиском по названию клада,с радокнопками,флажками и прочей лобудой

Код: Выделить всё

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 сохраняю ее в мою переменную.Как применить ее?Если писать

Код: Выделить всё

...Display Global Global Symbol my_symbol
выходит ошибка,что нельзя использовать неинициализированну переменную my_symbol.

Re: создание кнопок

Добавлено: 06 мар 2011, 18:54
arslanKZN
Не стал плодить темы,возможно ли конвертировать полученные программы в exe?

Re: создание кнопок

Добавлено: 06 мар 2011, 19:20
Boris
arslanKZN писал(а):Не стал плодить темы,возможно ли конвертировать полученные программы в exe?
и да, и нет.
нет - на прямую формат MBX в EXE не превращается.
да - через любой язык программирования можно посылать те же самые команды MAPBASIC'а работающей копии MapInfo.
Исключения - операторы циклов и ветвления ( if и т.п.)