Пример FindObj
Делаю выделение объектов (нажимаю прямоугольничек).
Если начальная точка выбрана за пределами карты - то выделение не делается - showmessage('Объект не создан!');.
И потом красный прямоугольник остается и не удаляется.
Я не могу понять, почему так происходит...
Может быть есть простой метод выделить все оъекты внутри прямоугольника ?
============================================================ ====
if MapSelectRect1.Selection
then begin
// Создать пустой объект
mo11.CreateObjectByExCode(0, KM_IDFLOAT2, 1000000002, OL_SQUARE);
// Установить метрику созданного объекта
MapSelectRect1.PPlace := PP_PLANE;
MapPoint1.PlaceInp := PP_PLANE;
MapPoint1.SetPoint(MapSelectRect1.SelectedRect.X1, MapSelectRect1.SelectedRect.Y1);
mo11.Metric.Append(0,MapPoint1.point);
MapPoint1.SetPoint(MapSelectRect1.SelectedRect.X1, MapSelectRect1.SelectedRect.Y2);
mo11.Metric.Append(0,MapPoint1.point);
MapPoint1.SetPoint(MapSelectRect1.SelectedRect.X2, MapSelectRect1.SelectedRect.Y2);
mo11.Metric.Append(0,MapPoint1.point);
MapPoint1.SetPoint(MapSelectRect1.SelectedRect.X2, MapSelectRect1.SelectedRect.Y1);
mo11.Metric.Append(0,MapPoint1.point);
mo11.Commit;
MapFindObject1.MapSelect.SiteNumber := 0; // основная карта
MapFindObject1.MapSelect.UnselectSeekArea(-1); // сбросим область если была
if mo11.Key = 0
then begin
showmessage('Объект не создан!');
exit; // объекта карты нет
end;
MapFindObject1.Active := false;
MapFindObject1.FindPoint := false;
// установим область по созданному ранее объекту
MapFindObject1.MapSelect.SelectSeekArea(-1,mo11,0, 1, 2, 1, 0);
k:=mo11.Delete;
Assert(k>0);
Делаю выделение объектов (нажимаю прямоугольничек).
Если начальная точка выбрана за пределами карты - то выделение не делается - showmessage('Объект не создан!');.
И потом красный прямоугольник остается и не удаляется.
Я не могу понять, почему так происходит...
Может быть есть простой метод выделить все оъекты внутри прямоугольника ?
============================================================
if MapSelectRect1.Selection
then begin
// Создать пустой объект
mo11.CreateObjectByExCode(0, KM_IDFLOAT2, 1000000002, OL_SQUARE);
// Установить метрику созданного объекта
MapSelectRect1.PPlace := PP_PLANE;
MapPoint1.PlaceInp := PP_PLANE;
MapPoint1.SetPoint(MapSelectRect1.SelectedRect.X1, MapSelectRect1.SelectedRect.Y1);
mo11.Metric.Append(0,MapPoint1.point);
MapPoint1.SetPoint(MapSelectRect1.SelectedRect.X1, MapSelectRect1.SelectedRect.Y2);
mo11.Metric.Append(0,MapPoint1.point);
MapPoint1.SetPoint(MapSelectRect1.SelectedRect.X2, MapSelectRect1.SelectedRect.Y2);
mo11.Metric.Append(0,MapPoint1.point);
MapPoint1.SetPoint(MapSelectRect1.SelectedRect.X2, MapSelectRect1.SelectedRect.Y1);
mo11.Metric.Append(0,MapPoint1.point);
mo11.Commit;
MapFindObject1.MapSelect.SiteNumber := 0; // основная карта
MapFindObject1.MapSelect.UnselectSeekArea(-1); // сбросим область если была
if mo11.Key = 0
then begin
showmessage('Объект не создан!');
exit; // объекта карты нет
end;
MapFindObject1.Active := false;
MapFindObject1.FindPoint := false;
// установим область по созданному ранее объекту
MapFindObject1.MapSelect.SelectSeekArea(-1,mo11,0, 1, 2, 1, 0);
k:=mo11.Delete;
Assert(k>0);