Сообщество программистов Autodesk в СНГ

ADN Club => AutoCAD .NET API => Тема начата: Борис_С от 02-06-2021, 16:05:15

Название: Как получить описание и адрес гиперссылки в ячейке таблицы в ActiveX
Отправлено: Борис_С от 02-06-2021, 16:05:15
Всем доброго дня.
Появилась такая задача: нужно получить описание и адрес гиперссылки в ячейке таблицы в ActiveX.
В ObjectARX эта задача решается 2-мя способами:
находится Field field = acTrans.GetObject(cell.FieldId, OpenMode.ForRead) as Field;
И далее парсингом свойства field.GetFieldCode() или таким кодом:
Код - C# [Выбрать]
  1. ObjectId[] childrenIds = field.GetChildrenIds();
  2. field = acTrans.GetObject(childrenIds[0], OpenMode.ForRead) as Field;
  3. string textToDisplay = field.HyperLink.Description;
  4. string adress = field.HyperLink.Name;
  5.  
В ActiveX
В ActiveX нет класса Field. Метод Table.GetFieldId(row, col) позволяет получить ObjectID field ячейки таблицы.
В Help нашел метод object.FieldCode. Подозреваю, что он даст тот же результат, что и метод GetFieldCode() в ObjectARX.
Загвоздка в том, что этот метод применим только к объектам MText, Text, а как их получить для ячейки таблицы я не знаю.
Спасибо.
Название: Re: Как получить описание и адрес гиперссылки в ячейке таблицы в ActiveX
Отправлено: Александр Ривилис от 02-06-2021, 19:10:41
Борис_С,
Рекомендую забыть про ActiveX в контексте Field.
Название: Re: Как получить описание и адрес гиперссылки в ячейке таблицы в ActiveX
Отправлено: Борис_С от 02-06-2021, 20:19:54
Уже забыл, но как все-таки получить описание и адрес гиперссылки в ячейке таблицы?
Название: Re: Как получить описание и адрес гиперссылки в ячейке таблицы в ActiveX
Отправлено: Александр Ривилис от 02-06-2021, 21:06:43
Уже забыл, но как все-таки получить описание и адрес гиперссылки в ячейке таблицы?
Средствами ActiveX - никак.
Название: Re: Как получить описание и адрес гиперссылки в ячейке таблицы в ActiveX
Отправлено: Борис_С от 03-06-2021, 10:47:20
Надежда умирает последней. Попробую еще немножко покапать.
У Table есть метод GetValue, один из параметров которого The content value of the cell.
Что это такое, и как его получить?
И еще один вопрос. Больше философский.
Есть метод GetFieldID, который выдает ObjectID field ячейки таблицы.
Что дальше можно с этим сделать?
Название: Re: Как получить описание и адрес гиперссылки в ячейке таблицы в ActiveX
Отправлено: Александр Ривилис от 03-06-2021, 13:16:38
У Table есть метод GetValue, один из параметров которого The content value of the cell.
Содержимое ячейки может иметь несколько контекстов. Это нигде не документировано. В любом случае поле ты не получишь.
Есть метод GetFieldID, который выдает ObjectID field ячейки таблицы.
Что дальше можно с этим сделать?
С этим можно было бы что-то делать если бы в AutoCAD COM/ActiveX был объект Field. Тогда имея ObjectID можно было бы получить Field (используя метод ObjectIDToObject) и что-то из него извлечь. Но увы, из-за отсутствия объекта Field это невозможно. Можно еще попытаться получить информацию через DXF-коды, но AutoCAD COM/ActiveX с ними не работает. И тогда остаётся только связка с VisualLisp или отказ от COM/ActiveX
Название: Re: Как получить описание и адрес гиперссылки в ячейке таблицы в ActiveX
Отправлено: Борис_С от 03-06-2021, 16:37:16
Если все так печально, может быть стоит попросить разработчиков добавить нужные объекты, свойства и методы в ActiveX ?
Название: Re: Как получить описание и адрес гиперссылки в ячейке таблицы в ActiveX
Отправлено: Александр Ривилис от 03-06-2021, 16:44:57
Если все так печально, может быть стоит попросить разработчиков добавить нужные объекты, свойства и методы в ActiveX ?
Я конечно могу передать это пожелание. Но AutoCAD COM/ActiveX не развивается > 15 лет и никто этого делать не будет.