RUS  ENG 

помогите извлечь типовой символ из библиотеки

Страницы: 1
RSS
помогите извлечь типовой символ из библиотеки
 
Добрый день!
Возникли трудности с получением ID значения индекса (SymbolID) типового символа из библиотеки символов. Простые символы возвращают свой ID-шник через SymbolID:=MapCtrl1.Map.Layers.Active.Elements.FirstItem.ElemStyle.SymbolID и потом по полученному значению индека мы можем получить картинку, имя символа.
MapCtrl1.Map.Layers.Active.Symbols.ItemByIndex[SymbolID].Picture
Тут проблем нет. При попытке таким же образом получить ID значение типового символа получаем 0 (ноль). Перепробывал наверно все, но без результата. Помогите советом, примером. Пожалста!
 
Дело в том, что типовые объекты отображаеются стилем, записанным в режиме. Поэтому SymbolID типового объекта - это SymbolID того режима, в котором этот объект сейчас находится.
Например, так
SymbolID:=MapCtrl1.Map.Layers.Active.Elements.FirstItem.Mode.ElemStyle.SymbolID
 
Спасибо большое!
Помогло!
Тут еще созрел один вопрос.
Можно ли программно создать файл с надписями *.L00 слоя имея при этом таблицу данных со сведениями надписей по некоторому слою.
 
Файл c надписями создать можно методом Layer.CreateLabels
Параметры метода аналогичны параметрам диалога создания надписей в Zulu. Т.е. там одним из параметров должен быть шаблон надписей. Если шаблон заранее создан, то надписи можно создать.
А вот программно создать шаблон пока нельзя.
 
Еще раз большое спасибо за ответ.
Приходиться сново обратиться за помощью.
По какому принципу производится позиционирование (наложение) слоев, что все слои при разных размерах
и имеющие разные точки центра слоя совпадают с центрами других слоев. Другими словами происходит наложение слоев от некоего общего центра. Как определить этот общий центр для всех?
Спасибо за помощь!!!
 
Если под центром понимается центр описанного вокруг слоя прямоугольника, то этот прямоугольник (габариты слоя) можно получить методом Layer.GetBounds А центр всей карты это центр прямоугольника, описанного вокруг объединения габаритов всех слоев карты.
 
Спасибо за ответ.
Приходиться заного обратиться за помощью.
Можно получить описание процедуры DrawToStream, т.к. в Справке ничего не сказано...
1. как правильно описать последний параметр
2. как получить доступ к информации записанного потока, через что, чтобы в дальнейшем можно было сослаться и перегрузить с помощью процедуры LoadFromStream
 
1. Последний параметр - это интерфейс IStream, который нужно создать и подставить в метод.
2. Соответственно к информации после вызова метода через этот интерфейс и обращаться.

IStream может быть как поток в памяти (см. CreateStreamOnHGlobal в OLE2 API), поток из storage file.
Для создания и манипуляции IStream у Delphi есть свои дополнительные классы и методы IStream (см. TOleStream)
 
Спасибо
Ухожу в тень, разбираться!
Страницы: 1