Список форумов www.integro.ru www.integro.ru
ЦСИ ИНТЕГРО
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

Контекстное меню

 
Начать новую тему   Ответить на тему    Список форумов www.integro.ru -> Вопросы разработчиков
Предыдущая тема :: Следующая тема  
Автор Сообщение
Hunter



Зарегистрирован: 29.08.2006
Сообщения: 9
Откуда: Belarus

СообщениеДобавлено: Вт 11 Сен 2007 15:44    Заголовок сообщения: Контекстное меню Ответить с цитатой

Как сделать чтобы принажатии правой кнопки мыши выскакивало контекстное меню и в нем была строчка меню, которая выполняла бы конкретную задачу? Twisted Evil
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
RuslanG



Зарегистрирован: 10.07.2005
Сообщения: 171
Откуда: ИНТЕГРО

СообщениеДобавлено: Ср 19 Сен 2007 16:32    Заголовок сообщения: Ответить с цитатой

Пример вызова контекстного меню на карте ИнГео
_________________
С уважением, Руслан Гадеев
Видео уроки ИнГео
Документация ИнГео
Обновления ИнГео
Интегропедия
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Hunter



Зарегистрирован: 29.08.2006
Сообщения: 9
Откуда: Belarus

СообщениеДобавлено: Чт 20 Сен 2007 09:58    Заголовок сообщения: Ответить с цитатой

При подключении модуля TestIngeo выдает ошибку Exclamation
Модуль "D:\WORKS\GIS\TestIngeoMouseUp\TestIngeo.dll" не содержит функции "M2DllRegisterAddOn" [0x007F].
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
RuslanG



Зарегистрирован: 10.07.2005
Сообщения: 171
Откуда: ИНТЕГРО

СообщениеДобавлено: Чт 20 Сен 2007 10:08    Заголовок сообщения: Ответить с цитатой

TestIngeo является программным модулем. В данном случае Вы пытались установить программный модуль как модуль расширения.
Последовательность установки программных модулей следующая:
  1. Зарегистрировать модуль командой "regsvr32.exe <имя файла модуля>" ("regsvr32 TestIngeo.dll").
  2. Запустить ГИС "ИнГео".
  3. Выполнить команду в меню Файл > Программные модули > ИнГео…
  4. В появившемся окне нажать кнопку "Импорт…" и выбрать файл с расширением inm необходимого модуля (TestIngeoMouseUp.inm).
  5. Затем после нажатия на кнопку "Открыть" в появившемся диалоговом окне "Импорт программных модулей" необходимо отметить импортируемый модуль и нажать кнопку "ОК".
  6. Отметить "галочкой" вновь добавленный программный модуль и закрыть окно "Программные модули".

После успешной установки модуля TestIngeo при нажатии правой клавиши мыши на окне карты появится контекстное меню.

_________________
С уважением, Руслан Гадеев
Видео уроки ИнГео
Документация ИнГео
Обновления ИнГео
Интегропедия
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
andreichernov



Зарегистрирован: 14.02.2005
Сообщения: 209
Откуда: Самара

СообщениеДобавлено: Пт 21 Сен 2007 12:54    Заголовок сообщения: Ответить с цитатой

Руслан, от Вашего примера очень мало толку, ибо он
за счет StopHandler переопределяет стандартное контекстное
меню Ингео, которое активно используется при, скажем, редактировании или создании объекта.
Функции Ингео, возвращающей текущий режим, чтобы в зависимости от него менять поведение, я не нашел.
С уважением, Андрей Чернов.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Алексей В. Бастриков



Зарегистрирован: 02.06.2008
Сообщения: 118
Откуда: ООО "Инфопроект", г. Екатеринбург

СообщениеДобавлено: Пт 13 Май 2011 10:51    Заголовок сообщения: Ответить с цитатой

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



Контекстное меню.rar
 Описание:

Скачивание
 Название файла:  Контекстное меню.rar
 Размер файла:  59.16 KB
 Скачено:  1111 раз(а)

Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Iron_Man



Зарегистрирован: 02.09.2011
Сообщения: 20

СообщениеДобавлено: Пн 19 Сен 2011 17:53    Заголовок сообщения: Ответить с цитатой

Пожалуйста, подскажите мне, не знающему тонкостей сишарпа, как будет выглядеть код из последнего сообщения, на Delphi? В примере на Delphi выше применён другой метод, который хоть и работает, но всё равно в Ингео вызывается старое popupmenu, и вызываются команды из него, а в последнем примере вроде то, что надо. Спасибо.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Iron_Man



Зарегистрирован: 02.09.2011
Сообщения: 20

СообщениеДобавлено: Вт 20 Сен 2011 20:47    Заголовок сообщения: Ответить с цитатой

Код:
procedure TCoMaps.OnMouseUp(aButton: TIngeoMouseButton;
  aShift: TIngeoShiftState; aX, aY: SYSINT);
var
  aPoint: TPoint;
  men: IInUIMenu;
begin
  if aButton = inmbRight then
  begin
    FApplication.MainWindow.MapWindow.StopHandler;
    if FApplication.Selection.Count = 1 then
    begin
      GetCursorPos(aPoint);
      aForm.FillPopupMenu;
      aForm.ObjPopupMenu.Popup(aPoint.X, aPoint.Y);
    end;
  end;
end;

У меня вопрос к знающим, почему при вызове этой процедуры всё равно вызывается контекстное меню Ингео, несмотря на FApplication.MainWindow.MapWindow.StopHandler ?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Алексей В. Бастриков



Зарегистрирован: 02.06.2008
Сообщения: 118
Откуда: ООО "Инфопроект", г. Екатеринбург

СообщениеДобавлено: Ср 21 Сен 2011 08:59    Заголовок сообщения: Ответить с цитатой

А данный обработчик вообще срабатывает?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Iron_Man



Зарегистрирован: 02.09.2011
Сообщения: 20

СообщениеДобавлено: Ср 21 Сен 2011 12:33    Заголовок сообщения: Ответить с цитатой

Алексей В. Бастриков,
OnMouseUp вообще срабатывает. И моё меню появляется. Но - иногда срабатывают пункты из ингеовского контекстного меню объектов. Иногда оно просто показывается, когда я, например, не выбираю ничего из своего меню и щёлкаю правой кнопкой где-то в другом месте. В общем не работает эта ерунда:
Код:
FApplication.MainWindow.MapWindow.StopHandler
.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов www.integro.ru -> Вопросы разработчиков Часовой пояс: GMT + 5
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете добавлять приложения в этом форуме
Вы можете скачивать файлы в этом форуме


© phpBB Group
Русская поддержка phpBB