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

 
                                
ВходВход    РегистрацияРегистрация    ПрофильПрофиль    ПользователиПользователи    ГруппыГруппы    FAQFAQ    ПоискПоиск  
На страницу Пред.  1, 2
 
   Список форумов www.map-info.ru | Форум - программирование в среде MapInfo Добавить ответ
Предыдущая тема :: Следующая тема  
Автор Сообщение
Alisa_67



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

СообщениеДобавлено: Чт Май 10, 2012 6:57 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_11
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
думала попробовать добавить представленный выше "ластик" возможно он меня спасет...помогите пожалуйста разобраться... Crying or Very sad
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Alisa_67



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

СообщениеДобавлено: Чт Май 10, 2012 7:00 pm    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

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



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

СообщениеДобавлено: Пт Май 11, 2012 6:46 am    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

Уважаемая Alisa_67 для регулировки отображения растров надо использовать оператор Set map с предложениями:
brightness ....
alpha ....
transparency ....
color ......
grayscale .....
Что-бы понять это сохрани карту рабочим набором и посмотри этот набор через любой текстовый редактор.
Редактировать растр MI не позволяет. Ластик была попытка сделать редактирование растра из MI
С уважением Vovik
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Alisa_67



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

СообщениеДобавлено: Пт Май 11, 2012 8:38 am    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

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

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


Top.Mail.Ru