На главную... Продукты | Технологии | Классификаторы | Проекты | Скачать | Цены| Форум | Статьи | Обучение | Контакты

Почему не ищет объект по двум значением семантики?

Поиск  Пользователи  Правила  Войти
Форум » Настольные приложения » GIS ToolKit, GIS ToolKit Active, ГИС Конструктор для Windows
Страницы: 1
RSS
Почему не ищет объект по двум значением семантики?, MapFind1.MapSelect
 
 Здравствуйте!

Просим подсказать, почему MapFind1 не ищет объект сразу по двум значением семантики одного объекта?

 form_main.MapFind1.Active := false;
 form_main.MapFind1.FindPoint := false;
 form_main.MapFind1.MapSelect.Clear;
 form_main.MapFind1.MapSelect.ClearAll;
 form_main.MapFind1.MapSelect.ClearSemantic;
 form_main.MapFind1.MapObj.Style := OS_NORMAL;
 form_main.MapFind1.MapSelect.Excode[-1,OL_SQUARE] := false;
 form_main.MapFind1.MapSelect.Excode[10000164,OL_SQUARE] := true;
 form_main.MapFind1.MapSelect.AddSemantic(1012, FloatToStr(bd_Zones.QSanitZonesSquareZone.AsFloat), SC_EQUAL); // Если закомментировать эту строку, то ищет хорошо
 form_main.MapFind1.MapSelect.AddSemantic(1013, bd_Zones.QSanitZonesServiceOrg.AsString, SC_EQUAL); // Если закомментировать эту строку, то ищет хорошо
 form_main.MapFind1.Active := true;
 form_main.MapFind1.First;
 
    // Установить/Запросить обобщающее условие для набора семантик

property SemanticLinkt: integer;  

может принимать значения SM_CMOR, SM_CMAND – объявлены в  maptype.pas

Описание:

Свойство возвращает/устанавливает обобщающее условие поиска по  набору семантик. Имеет смысл в случае, если заданы несколько условий поиска по  семантике. Обобщающее условие указывает каким образом интерпритируются  результаты сравнения нескольких условий поиска по семантике: SM_CMOR – должно  выполниться хотя бы одно условие поиска, SM_CMAND – должны выполниться все  условия поиска.

Изменено: Andrey Gheleznyakov - 18.10.2022 14:42:19
 
Цитата
Andrey Gheleznyakov написал:
SM_CMAND
Сделали так:
form_main.MapFind1.Active := false;
form_main.MapFind1.FindPoint := false;
form_main.MapFind1.MapSelect.Clear;
form_main.MapFind1.MapSelect.ClearAll;
form_main.MapFind1.MapSelect.ClearSemantic;
form_main.MapFind1.MapSelect.SemanticLink := SM_CMAND;
form_main.MapFind1.MapObj.Style := OS_SELECT;
form_main.MapFind1.MapSelect.Excode[-1,OL_SQUARE] := false;
form_main.MapFind1.MapSelect.Excode[10000164,OL_SQUARE] := true;
form_main.MapFind1.MapSelect.AddSemantic(1012, FloatToStr(bd_Zones.QSanitZonesSquareZone.AsFloat), SC_EQUAL);
form_main.MapFind1.MapSelect.AddSemantic(1013, bd_Zones.QSanitZonesServiceOrg.AsString, SC_EQUAL);
form_main.MapFind1.Active := true;
form_main.MapFind1.First;
form_main.MapFind1.Center;
ShowMessage ('найдена ОТ с заданным условием на карте');

Не компилируется. пишет SM_CMAND не известный идентификатор,
пояснения в maptype.pas не нашел.
Что я не так делаю?

Может в Uses нужно что-то добавить или установить цифру вместо этого значения?
 
Документацию поправим. Ошибка вышла.
maptype.pas
const
   SC_CMOR  = 16; // выполняется хотя бы одно условие поиска
   SC_CMAND = 32; // выполняются все
 
Все понятно.
Спасибо вам большое.
Страницы: 1
Читают тему (гостей: 1)



© КБ Панорама, 1991-2024

Регистрируясь или авторизуясь на форуме, Вы соглашаетесь с Политикой конфиденциальности