В задаче написанной по технологии PanTask, при нажатии кнопки создаю "Акцию". Вопрос, как сделать так, чтобы "акция" не реагировала на стандартные обработчики ГИС Карты до момента, когда будет такая необходимость. ---- Поясняю что нужно. Нажимаю кнопку - создаётся форма с акцией. Пока я в форме, обработчики выбора объекта, создания выпадающего меня по клику мыши, реакция на клик карты и так далее не должен никак "перерыватся" функциями акции Если я нажимаю кнопку на форме, акция должна работатьь в штатном режиме (выбирать объект, обрабатывать клики мышки, клавиатуры и так далее)
По сути нужна управляемая акция.
==================== Задача упрощается... Вопрос, как управлять вот этим параметром
Код
function TInputAction.GetSelectObjectType: integer;
begin
result := 0;
end;
Вызывается один раз при создании акции. Если вернут единицу выбор не сопровождается диалогом, если ноль сопровождается. Нужно во время работы акции сначала "светить" диалог, а если нажата кнопка выбора объекта на карте - гасить его. По хорошему нужно сгененрировать запрос ГИС Карты на вызов функции utsGetSelectObjectType, как это сделать
Насколько я понял, акция вызывается, но должна работать по разному в зависимости от логики прикладной задачи. Вы это можете организовать путем создания внутренних флагов, состояние которых будете отслеживать самостоятельно.
Андрей Владиславович, Вы всё правильно поняли, я так и работаю НО суть вопроса в следующем: Я нажал на кнопку => создалась акция. ГИС Карта вызваля ряд экспортных функций и "успокоилась" ---------- тут акция работает по законам технологии PanTask --------------
после создания акции я отображаю форму на которой что-то делаю.... акция работает в штатном режиме !!! Теперь, на моей форме я нажимаю кнопку (допустим выбор объекта) и скрываю форму (предварительно подписав статусную панель)
я могу выбрать объект кликом в диалоге "выбора объекта" кнопки "выбор"
это было описание работы.... Теперь о том что я спрашиваю...
Акция вызывает функцию utsGetSelectObjectType всего один раз при создании и запоминает как моей акции Выбирать объект с диалогом или без него, гдето в дебрях ГИС карты. Этот параметр я ей возвращаю: 0- с диалогом, 1-без диалога. и ВСЁ, акция больше не спросит мою задачу как я хочу выбирать объект.
Собственно ВОПРОС: Специфика работы кнопки подразумевает стандартный выбор объекта(как в ГИС Карте) до тех пор, пока я не нажму ту "злощастную" кнопку на форме. То есть, как организовать работу таким образмо, чтобы при создании акции, выбор объекта работал с диалогом (как в ГИС карте) , а при определённом "телодвижении" (нажатие на кнопку на моей форме) ГИС карта переопросила мою акцию вызвав повторно utsGetSelectObjectType и повторно запомнив мой параметр.
Надеяюсь правильно объяснился. Если запутано - то вопрос звучит так: почему utsGetSelectObjectType вызывается один раз при создании, и как заставить ГИС Карту 2011 вызывать utsGetSelectObjectType повторно когджа мне надо .. или как заставить ГИС Карту выбирать объект с диалогом, а в нужный мне момент без диалога.
Не тот глуп кто не знает, а тот, кто не знает где искать.
спасибо... я так и понял. Жаль что невозможно управлять этим параметром. Создание и удаление акции при нажатии на кнопку на форме, может происходить десяток (сотню раз за сеанс) В таких гибких местах, я стараюсь не "играться" с созданием/удалением объектов подобных типов (Акции). Постоянное "передёргивание", может привести к нестабильной работе и/или утечках памяти.
Не тот глуп кто не знает, а тот, кто не знает где искать.