Как получить описание и адрес гиперссылки в ячейке таблицы в ActiveX

Автор Тема: Как получить описание и адрес гиперссылки в ячейке таблицы в ActiveX  (Прочитано 4241 раз)

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

Оффлайн Борис_САвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 238
  • Карма: 3
Всем доброго дня.
Появилась такая задача: нужно получить описание и адрес гиперссылки в ячейке таблицы в 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, а как их получить для ячейки таблицы я не знаю.
Спасибо.

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13830
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Борис_С,
Рекомендую забыть про ActiveX в контексте Field.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Борис_САвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 238
  • Карма: 3
Уже забыл, но как все-таки получить описание и адрес гиперссылки в ячейке таблицы?

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13830
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Уже забыл, но как все-таки получить описание и адрес гиперссылки в ячейке таблицы?
Средствами ActiveX - никак.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Борис_САвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 238
  • Карма: 3
Надежда умирает последней. Попробую еще немножко покапать.
У Table есть метод GetValue, один из параметров которого The content value of the cell.
Что это такое, и как его получить?
И еще один вопрос. Больше философский.
Есть метод GetFieldID, который выдает ObjectID field ячейки таблицы.
Что дальше можно с этим сделать?

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13830
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
У 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
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Борис_САвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 238
  • Карма: 3
Если все так печально, может быть стоит попросить разработчиков добавить нужные объекты, свойства и методы в ActiveX ?

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13830
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Если все так печально, может быть стоит попросить разработчиков добавить нужные объекты, свойства и методы в ActiveX ?
Я конечно могу передать это пожелание. Но AutoCAD COM/ActiveX не развивается > 15 лет и никто этого делать не будет.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение