Список форумов www.integro.ru www.integro.ru
ЦСИ ИНТЕГРО
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

Добавление рисунка в символьный тип

 
Начать новую тему   Ответить на тему    Список форумов www.integro.ru -> Вопросы разработчиков
Предыдущая тема :: Следующая тема  
Автор Сообщение
Вячеслав Ложкин



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

СообщениеДобавлено: Ср 15 Окт 2014 13:50    Заголовок сообщения: Добавление рисунка в символьный тип Ответить с цитатой

Подскажите как добавить растровый рисунок в символьный тип отображения посредством VBScript. Необходимо либо копировать свойства одного символьного типа содержащего растр в другой, либо загрузить растр из файла. Может ли кто нибудь дать простой пример кода для того что бы разобраться. Как вариант устроит и код написанный на других языках. Читал нечто похоже на этом форуме, но без примера не смог разобраться (http://www.integro.ru/forum/viewtopic.php?t=1330)
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
APopov



Зарегистрирован: 19.06.2006
Сообщения: 347
Откуда: Самара

СообщениеДобавлено: Ср 15 Окт 2014 17:18    Заголовок сообщения: Ответить с цитатой

вот основные куски кода, которые должны вам помочь
Код:
sub LoadLayerStylePics (Layer, WorkDir, loadedPicsCount)
   dim style, painter, i, j, pic, picData, ext, fn
   for i=0 to Layer.Styles.count-1
      set style = Layer.Styles(i)
      for j=0 to style.Painters.Count-1
         set painter = style.Painters(j)
         set pic = GetSinglePic(painter)
         if not(pic is nothing) then
            fn = GetFileNameForPic(WorkDir, Layer, style, painter, "")
            if sysUtils.fileExists( fn + ".bmp") then
               pic.Picture = sysUtils.ReadBinaryFile( fn + ".bmp")
               loadedPicsCount = loadedPicsCount + 1
            else
               'пока в 4.4 нельзя загрузить ч/з апи из файла что-то кроме bmp
            end if
            painter.Comment = "" 'чтоб стиль увидел, что он изменился.
         end if
      next
      style.Update
   next
   Layer.update
end sub
'----sysUtils
Sub WriteBinaryToFile(binaryData, aFN)
  Const adSaveCreateOverWrite = 2
  With CreateObject("ADODB.Stream")
    .Type = 1 'adTypeBinary
    .Open
    .Write binaryData
    .SaveToFile aFN, adSaveCreateOverWrite
    .Close
  End With
End Sub

Function ReadBinaryFile(filename)
  Dim bArr
  With CreateObject("ADODB.Stream")
    .Type = 1 'adTypeBinary
    .Open
    .LoadFromFile filename
    bArr = .Read
    .Close
    ReadBinaryFile = bArr
  End With
End Function

_________________
ОАО "Самара-Информспутник",
инженер-программист Попов Артем
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Вячеслав Ложкин



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

СообщениеДобавлено: Чт 16 Окт 2014 01:38    Заголовок сообщения: Ответить с цитатой

Спасибо большое. Неделю бился, не знал что еще придумать. А все просто оказалось. Изменил comment и все заработало и загрузка и копирование
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов www.integro.ru -> Вопросы разработчиков Часовой пояс: GMT + 5
Страница 1 из 1

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


© phpBB Group
Русская поддержка phpBB