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

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

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



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

СообщениеДобавлено: Ср Май 16, 2012 4:44 pm    Заголовок сообщения: Встраивание новой кнопки в панель Добавить ответ со ссылкой на данный текст

Здравствуйте, помогите чайнику...завтра защита, а у меня не всё гладко, как хотелось бы...Задача вот в чём...есть код:
Include "mapbasic.def"
Include "Menu.def"
Include "icons.def"
Declare Sub Main
Declare Sub AlterButtonToBPad
Declare sub readPref
Declare Sub ShowRastr
Declare Sub InverseState (state as logical,pstf as string)
Declare function isMap() as integer
Declare sub mdEnd
Type prefRastr
pref as string
state as logical
End Type
dim idWinMap as integer
dim isPref as logical
dim pref() as prefRastr
dim tt as integer
Sub Main
dim i as integer
'Построение базовой панели с одной кнопкой
Create ButtonPad "Показать/Скрыть" As
PushButton
Icon MI_ICON_SIGNS_1
Calling mdEnd
ID 2562
HelpMsg "Выход из программы\nВыход из программы"
Enable
Width 15
Show
ToolbarPosition (1,0)
Fixed
'Читаем файл префиксов
call readPref
'Включаем дополнительные кнопки в базовую панель
for i=1 to ubound(pref)
tt=i+1000
call AlterButtonToBPad
next
'Обеспечиваем соответствие карты состоянию кнопок
if isMap()=1 then
for i=1 to ubound(pref)
pref(i).state="T"
next
exit sub
end if
for i=1 to ubound(pref)
call InverseState(pref(i).state,pref(i).pref)
next
end sub
sub readPref
Dim sAppPath As String
dim i as integer
dim s as string
i=0
sAppPath = ApplicationDirectory$() & "pref.txt"
If FileExists(sAppPath) Then
Open File sAppPath For Input as #1
Do
Input #1, s
i=i+1
redim pref(i)
pref(i).pref=s
pref(i).state=false
Loop While Not EOF(1)
redim pref(i-1)
Close File #1
s=pref(i-1).pref
if s<>"T" and s<>"t" and s<>"F" and s<>"f" then
note "Неверный параметр в последней строке файла pref.txt." &
chr$(10) & "Исправьте файл и загрузите программу."
End Program
end if
isPref =pref(i-1).pref
redim pref(i-2)
if isPref<>true and isPref<>false then
note "Неверный параметр в последней строке файла pref.txt." &
chr$(10) & "Исправьте файл и загрузите программу."
End Program
end if
end if
end sub
Sub AlterButtonToBPad
dim s as string
s="Растр: "
if isPref=false then
s=s & "*"
s=s & pref(tt-1000).pref & "\n" & s & pref(tt-1000).pref
else
s=s & pref(tt-1000).pref & "*" & "\n" & s & pref(tt-1000).pref & "*"
end if
Alter ButtonPad "Показать/Скрыть"
Add ToggleButton
Icon MI_ICON_MB_8
Calling ShowRastr
HelpMsg s
ID tt
Enable Uncheck
end sub
Sub ShowRastr
dim r as integer
r=CommandInfo(CMD_INFO_TOOLBTN )-1000
if isMap()=1 then
pref(r).state=not pref(r).state
exit sub
end if
call InverseState (pref(r).state,pref(r).pref)
end sub
Sub InverseState (state as logical,pstf as string)
dim j,n,k as smallint
dim s,ff as string
k=len(pstf)
state=not state
n=MapperInfo(idWinMap,MAPPER_INFO_LAYERS)
for j=1 to n
'Здесь для большей определенности можно добавить
'проверку типа слоя (LAYER_INFO_TYPE_IMAGE)
s=LayerInfo(idWinMap,j,LAYER_INFO_NAME)
if isPref then
ff=left$(s,k)
else
ff=right$(s,k)
end if
if ff=pstf then
if state=true then
'Слой виден
Set Map Window idWinMap Layer j Display Global
Else
'Слой не виден
set map Window idWinMap layer j Display Off
end if
end if
next
end sub
function isMap() as integer
'Проверка типа окна
isMap=0
idWinMap= FrontWindow()
If WindowInfo(idWinMap, WIN_INFO_TYPE) <> WIN_MAPPER Then
Note "Инструмент используется только в окне Карты."
isMap=1
End If
end function
Sub mdEnd
'Выход из программы
End Program
end sub
Программа создает панель, на которой кнопки, регулирующие отображение растра...мне необходимо добавить кнопочку при нажатии на которую откроется простой диалог...Как осуществить данню задачу...Заранее спасибо...Ваш чайник Sad
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
   Список форумов www.map-info.ru | Форум - программирование в среде MapInfo Добавить ответ
Страница 1 из 1

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


Top.Mail.Ru