IDDOUBLE2 = ЧислоИзШестнадцатеричнойСтроки("0x7FFC7FFC");
27.10.2023 14:43:46
[QUOTE]Анатолий Рогатнев написал:
Пользователю не нужно показывать окно выбора объектов) [/QUOTE] Если не нужен выбор типа, то Вы сами должны указать параметры создаваемого объекта: Из документации axMapEditMetric
Компонент объекта карты, метрика которого редактируется.
property cMapObj : axMapObj;
Описание: Свойство определяет объект карты, метрика которого редактируется. Если cMapObj не будет настроен на реальный объект карты, то свойство Active будет всегда выдавать false. Таким образом, перед запуском процедуры создания необходимо настроить axMapObj на нужный тип объекта карты: Из документации axMapObj
Создать пустой объект определенного типа.
function CreateObjectByExcode(SiteNumber ,Kind, ExCode, Local : integer) : integer;
Описание:
Создаётся новый пустой объект на карте с порядковым номером SiteNumber, с типом метрики Kind, и типом объекта, определяемом ExCode и Local. При ошибке возвращает 0, иначе идентификатор объекта (integer). Для справки по параметру Kind: enum KIND // ВИДЫ ФОРМАТОВ МЕТРИКИ { IDLONG2 = 0x7FFE7FFE, // четырехбайтовая целочисленная IDDOUBLE2 = 0x7FFC7FFC, // с плавающей запятой двойной точностью IDBIGDOUBLE2 = 0x7FFC7FFF, // с плавающей запятой двойной точностью (>= 65535 подобъектов) IDLONG3 = 0x7FFA7FFA, // четырехбайтовая целочисленная трехмерная IDDOUBLE4 = 0x7FF87FFF, // с плавающей запятой двойной точностью трехмерная и поле M (double) IDDOUBLE4F = 0x7FF87FFE, // с плавающей запятой двойной точностью трехмерная и поле F (integer) IDDOUBLE3 = 0x7FF87FF8, // с плавающей запятой двойной точностью трехмерная IDBAD = 0x7FF87FF7 // неизвестный вид };
Изменено: |
|
|
27.10.2023 14:37:26
По части Commit: Вы сами должны его выдать в момент успешного завершения создания или редактирования объекта.
Из документации: "В зависимости от выбранного режима работы (свойство MetEditMode) и характера локализации создаваемого (редактируемого) объекта, редактирование метрики выполняется по-разному. В режиме создания объектов (MetEditMode = emCreate) для точечных объектов (axMapObj.Local = OL_MARK) при нажатии правой кнопки мыши на карте, появляется схематичное изображение создаваемого объекта. Перемещением мыши по карте с нажатой левой клавишей мыши производиться выбор расположения точечного объекта. Так как точечный объект должен иметь только одну точку метрики, отжатие кнопки мыши является завершением процесса создания объекта. При успешном завершении редактирования (создания) метрики объекта, новая метрика присваивается объекту, на который настроен компонент axMapObj, затем вызывается событие OnExecute, свидетельствующее об успешном завершении процесса редактирования метрики и компонент переводиться в неактивный режим (вызывается метод StopAction). В противном случае метрика в объект не передается и событие OnExecute не вызывается." Вы Commit в событии OnExecute вызывали? В ответе #76 был пример редактирования метрики с там была процедура записи изменений: // обработка положительного окончания редактирования
Изменено: |
|
|
26.10.2023 08:26:20
Пример группового выделения нескольких объектов на языке Паскаль
mvMap - это компонент MapView procedure TfrmFind.btnSelectGroupClick(Sender: TObject); var listname,str : string; issamp,icount : integer; ret : integer; al, at : integer; begin listname := "Ногинск(граф дорог)"; mvMap.ViewSelect.ClearSampleAll; ret := mvMap.ViewSelect.SelectSample(true, listname, N_OBJ_NUMB1); if ret > 0 then inc(issamp); ret := mvMap.ViewSelect.SelectSample(true, listname, N_OBJ_NUMB2); if ret > 0 then inc(issamp); ret := mvMap.ViewSelect.SelectSample(true, listname, N_OBJ_NUMB3); if ret > 0 then inc(issamp); mvMap.SetViewSelected(true, clAqua); icount := mvMap.ViewSelect.GetSampleCount(0,1); end else mvMap.SetViewSelected(false, clAqua); ShowMessage('Выделено ' + inttostr(icount) + ' объекта(ов)'); end;
Изменено: |
|
|
© КБ Панорама, 1991-2024 Регистрируясь или авторизуясь на форуме, Вы соглашаетесь с Политикой конфиденциальности |