Всем доброго дня!
Уважаемые коллеги, подскажите, пожалуйста, как можно получить текст ссылки на выделенный объект.
В API нашел метод IKompasDocument2D1.GetHyperLinkObjects, один из параметров которого BSTR Text - текст ссылки,
но код, который я написал не изменил значение этого параметра. Возможно есть другой путь.
Буду рад любой помощи. Спасибо.
Сформулируйте задачу точнее, что Вы хотите - получить или изменить.
Получение текста гиперссылки: GetHyperLinkParam
Изменение гиперссылки я не увидел в документации иначе кроме как через DeleteHyperLink, CreateHyperLink (и копирование)
Цитата: Борис_С от 11.06.21, 18:36:37как можно получить текст ссылки на выделенный объект
1. А с чего вы взяли, что "выделенный объект" имеет "ссылку"?
2. В справке по SDK сказано: "GetHyperLinkObjects - Получить объекты,
имеющие гиперссылку".
3. Ваш вопрос содержит противоречие не позволяющее дать однозначный ответ - переформулируйте вопрос или дайте кусок кода, который позволит понять, что же вам нужно.
Про ссылки почитайте тут
https://forum.ascon.ru/index.php?topic=20498.0
Цитата: 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);
}