Лучшая подборка книг и информации по программированию.Скидка 11%, подарки к заказу и бесплатная доставка!
RSS иконка EMail иконка Домашняя иконка

  • Работа с MapInfo. Переподчинение окон MapInfo

    Написано 28.07.2009 11:56 devalmor 4 комментариев

    После запуска MapInfo используйте оператор Set Application Window языка MapBasic для обеспечения перехвата управления Вашей программой-клиентом диалоговых окон и сообщений об ошибках программы MapInfo.

    Затем, в желаемой точке включения окна MapInfo в Ваше приложение передайте MapInfo оператор Set Next Document, за которым следует MapBasic-оператор, создающий окно.

    Оператор Set Next Document позволяет Вам “переподчинять” окна документов. Синтаксис этого оператора требует указания уникального номера HWND элемента управления в Вашей программе. При последующем создании окна-документа MapInfo (с использованием операторов Map, Graph, Browse, Layout или Create Legend) создаваемое окно становится для окна порождающим объектом.

    Примеры приведены из компонента но тоже самое можно выполнить и метолом Do непосредственно, но вы это уже я думаю поняли

    ExecuteCommandMapBasic(’Set Application Window %D’, [FOwner.Handle]);
    ExecuteCommandMapBasic(’Set Window Info Parent %D’, [FOwner.Handle]);
    ExecuteCommandMapBasic(’Set Next Document Parent %D Style 1′, [FPanel.Handle]);

    Примечание:

    В компоненте это реализовано процедурой WindowMapDef которая ссылается на панель заданную свойством PanelMap.

    Для каждого переподчиняемого окна необходимо передать программе MapInfo из Вашей программы пару операторов – оператор Set Next Document Parent, а затем оператор, создающий окно. После создания окна Вам может понадобиться запросить из MapInfo значение функции WindowID(0) – целочисленный ID-номер окна (Window ID) в MapInfo, так как многие операторы языка MapBasic требуют задания этого номера. Этот запрос выполняется на основе компонента следующим образом:

    WindowID := Eval(’WindowID(%D)’,[0]).AsInteger;

    Заметьте, что даже после переподчинения окна Карты, MapInfo продолжает управлять им. клиентская программа может не обращать внимания на сообщения о перерисовке, реализацию данной особенности я оставлю на потом.

    Автор: Дмитрий Кузан


     

    4 responses to “Работа с MapInfo. Переподчинение окон MapInfo” RSS иконка


    Оставить комментарий

    Вы должны авторизоваться для отправки комментария.