Как получить ссылку на выделенный объект

Автор Борис_С, 11.06.21, 18:36:37

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Борис_С

Всем доброго дня!
Уважаемые коллеги, подскажите, пожалуйста, как можно получить текст ссылки на выделенный объект.
В API нашел метод IKompasDocument2D1.GetHyperLinkObjects, один из параметров которого BSTR Text - текст ссылки,
но код, который я написал не изменил значение этого параметра. Возможно есть другой путь.
Буду рад любой помощи. Спасибо.


KilkennyCat

#1
Сформулируйте задачу точнее, что Вы хотите - получить или изменить.
Получение текста гиперссылки: GetHyperLinkParam
Изменение гиперссылки я не увидел в документации иначе кроме как через DeleteHyperLink, CreateHyperLink (и копирование)

p3452

Цитата: Борис_С от 11.06.21, 18:36:37как можно получить текст ссылки на выделенный объект
1. А с чего вы взяли, что "выделенный объект" имеет "ссылку"?
2. В справке по SDK сказано: "GetHyperLinkObjects - Получить объекты, имеющие гиперссылку".
3. Ваш вопрос содержит противоречие не позволяющее дать однозначный ответ - переформулируйте вопрос или дайте кусок кода, который позволит понять, что же вам нужно.

msvteh


Борис_С

Цитата: KilkennyCat от 11.06.21, 20:42:16Сформулируйте задачу точнее, что Вы хотите - получить или изменить.
Получение текста гиперссылки: GetHyperLinkParam
Изменение гиперссылки я не увидел в документации иначе кроме как через DeleteHyperLink, CreateHyperLink (и копирование)

Спасибо все получилось. Получил адрес гиперссылки методом GetHyperLinkParam.
На всякий случай приведу код. Может кому-нибудь пригодится.
        //получение ссылки текущего элемента
        void GetHLinks(int reference)
        {
            //reference - идентификатор объекта
            //kompas - ссылка на экземпляр Application приложения Kompas
            ksDocument2D doc = kompas.ActiveDocument2D();
            doc.ksClearGroup(0, false);  //снятие выделения текста
            doc.ksAddObjGroup(0, reference); //выделение текста
            IApplication kompasApi7 = (IApplication)kompas.ksGetApplication7();
            IKompasDocument doc1 = kompasApi7.ActiveDocument;
            IKompasDocument2D1 kompasDocument2D1 = (IKompasDocument2D1)doc1;
            ISelectionManager selectionManager = kompasDocument2D1.SelectionManager;
            IDrawingObject drawingObject = selectionManager.SelectedObjects;
            IDrawingObject1 drawingObject1 = (IDrawingObject1)drawingObject;
            ksHyperLinkTypeEnum type;
            IDrawingObject linkObject;
            int level;
            string url = drawingObject1.GetHyperLinkParam(out type, out linkObject, out level);
        }