EditSelectRect

Previous Top Next

 

Функция выбора и изменения области карты в заданной системе координат.

Функция описана в модуле DlgSelRt. Вызов функции приводит к созданию окна содержащего карту, кнопки управления и панели с вспомогательной информацией.

function EditSelectRect(MapView: TMapView; Place: TPPlace; Color: TColor; SelectionMode: TselectionMode; var SelectRect: TMapDFrame):  boolean;

Описание:

На входе функция получает параметры:

MapView – указатель на компонент TMapView c открытой картой;

Place – система координат (PP_PICTURE, PP_PLANE или PP_GEO);

Color - цвет рамки.

SelectionMode - Способ выделения области. Определяет алгоритм процесса выбора области карты:

TSelectionMode =

(smStandart,                // стандартно

smTwoClicks,                // двумя нажатиями

smEdit,                        // редактирование существующей области

smStandart_Edit,        // стандартно с дальнейшим редактированием

smTwoClicks_Edit);        // в два нажатия с дальнейшим редактированием.

SelectRect – структура содержащая координаты верхнего левого и правого нижнего углов выбранной области в системе координат указанной в параметре Place;

При успешном выборе области карты функция возвращает значение true и заполненную структуру, полученную через параметр SelectRect.

При вызове функции создается окно следующего вида:

 

Cпособ выделения области SelectionMode определяет, какие необходимо выполнить действия для выделения области на карте:

 

Стандартный (аналог выделения области в Windows, т.е. выделение начинается в точке нажатия левой кнопки мыши на карте, перемещением мыши с нажатой левой кнопкой осуществляется выбор габаритов области, отпускание кнопки мыши является окончанием выбора области, компонент переходит в пассивный режим);

В два нажатия (аналог выделения области в ГИС «Панорама», т.е. началом выделения является точка первого нажатия левой кнопки мыши на карте, перемещением мыши осуществляется выбор габаритов области, повторное нажатие левой кнопки мыши является окончанием выбора области, компонент переходит в пассивный режим);

Редактирование области (при активизации компонента на карте отображаются границы выделенной ранее области, координаты которой занесены в поле SelectedRect в системе координат, установленной свойством Pplace, область  можно перемещать и изменять ее размеры; окончанием выбора области в данном случае является принудительный выход из активного режима вызовом метода StopAction, либо выбор в выпадающем по правой кнопке мыши меню пункта «принять область»);

Стандартный с редактированием (аналогичен режиму Стандартный, только по окончании выбора области не переводит компонент в неактивный режим, а дает возможность редактирования области, которое осуществляется аналогично режиму Редактирование области);

В два нажатия с редактированием (аналогичен режиму В два нажатия, только по окончании выбора области не переводит компонент в неактивный режим, а дает возможность редактирования области, которое осуществляется аналогично режиму Редактирование области).

 

В режимах с предусмотренным редактированием, после того как область выбрана, можно изменить ее размер или переместить в другое место. Для этого надо подвести курсор к одной из сторон области или к одному из ее углов. При этом курсор изменит свой вид. Далее следует нажать кнопку мыши и, не отпуская ее движением курсора мыши установить желаемый размер. При приближении курсора мыши к краю окна просмотра карта будет автоматически сдвигаться в окне. Перемещение области в окне происходит аналогичным образом.

После нажатия кнопки «Принять выбор области» или выбора в выпадающем меню пункта «Принять выделенную область» окно с картой закрывается, и функция возвращает координаты левого верхнего и правого нижнего углов выбранной области в заданной системе координат. При выборе в выпадающем меню пункта «Отменить выделение» окно с картой закрывается, координаты выбранной области обнуляются.