форматирования поля AcFdMakeFieldCode

Автор Тема: форматирования поля AcFdMakeFieldCode  (Прочитано 6649 раз)

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

Оффлайн alex-63Автор темы

  • ADN OPEN
  • Сообщений: 19
  • Карма: 0
  • Skype: alx_14521963
День добрый.
Пример
https://adn-cis.org/programmnoe-dobavlenie-polya-k-tekstu.html

У меня Acad2014 x64  MSVC 2010
Вопрос по формированию поля  :
AcFdMakeFieldCode(id,(AcDbEvalNodeId)0,_T("TextString"),AcFdEval::kObjFieldNone,_T(""),(AcHyperlink*)NULL,(ACHAR*&)strField);
У меня почему то не совсем адекватно работает этот пример т.к :
После выполнения кода поле  получается
%<\AcObjProp Object(%<\_ObjId 140688600620784>%).Backward \f "%bl2">%
И если зайти в редактор текста и просмотреть Field  поле стане No/
А должно быть:
%<\AcObjProp Object(%<\_ObjId 140688600620784>%).TextString>%
Вопрос:  Что обозначает 2 ой аргумент cFdMakeFieldCode  ?( это  номер свойства  ?)
Из helpa
blockParamId   Input block parameter ID if the object is a dynamic block or block reference and the property is a dynamic block property
0   соответствует -> Backward-> Backward
1   соответствует -> Contents-> TextString
Замена  второго аргумента на (AcDbEvalNodeId)2 ничего не  меняет.
Как добиться правильного формирования поля %<\AcObjProp Object(%<\_ObjId 140688600620784>%).TextString>% ?
Как поведение программы в других версиях AutoCad? :o
« Последнее редактирование: 23-11-2022, 12:19:53 от alex-63 »

Отмечено как Решение Александр Ривилис 25-11-2022, 19:57:57

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: форматирования поля AcFdMakeFieldCode
« Ответ #1 : 25-11-2022, 07:02:55 »
Как добиться правильного формирования поля %<\AcObjProp Object(%<\_ObjId 140688600620784>%).TextString>% ?
А почему бы его именно так и не формировать, только подставить правильное значение _ObjId?
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн alex-63Автор темы

  • ADN OPEN
  • Сообщений: 19
  • Карма: 0
  • Skype: alx_14521963
Re: форматирования поля AcFdMakeFieldCode
« Ответ #2 : 25-11-2022, 13:43:58 »
Да типа такого
strField.Format(_T("%%<\\AcObjProp Object(%%<\\_ObjId %I64u>%%).TextString>%%"),id.asOldId());
работает.