noprogrammer писал(а) 05. Мая 2007 :: 07:56:Все класно, вот только никак не могу понять как создать атрибут с типом "Число" с диной 15 и точностью 2
1.
Баг пофиксил.
Для правильного определения типа, длины и точности нужно использовать код из двух выражений // для назначения типа с длиной и точностью нужно указывать тип 2 раза
// 1 раз - при добавлении атрибута через ФормЕкс
// 2 раз - при назначении типа штатно через 1С
лАтрибутЕдит2 = ДобавитьАтрибут("НовыйЕдит2", 2, Смещение, "Число"); // 1
// специально ограничиваю длину и точность :)
// а вообще можно использовать любые варианты длины и точности
Форма.ПолучитьАтрибут("НовыйЕдит2").НазначитьТип("Число", 3, 1); // 2
2.
Для Алексея исправление кода FormEx на С++ - все просто
В FormEx.cpp Между строчками CtrlInfo.SetLayerName(pDoc->m_pEditDoc->m_layers[pDoc->m_pEditDoc->m_iActiveLayer]);
и
pDoc->m_cControlList.AddTail(&CtrlInfo);
нужно вставить след.код // artbear - без этого флага не будет работать назначение типов - метод Форма.Атрибут.НазначитьТип
const long C_CCONTROLID_DEPENDPARAM_IS_TYPE_ASSIGNED = 0x100000L; // у контрола не задан тип - artbear
CtrlInfo.SetDependParam(CtrlInfo.GetDependParam() | C_CCONTROLID_DEPENDPARAM_IS_TYPE_ASSIGNED);
естественно, константу удобнее закинуть в какой-нибудь хедер
После подобной вставки можно назначать длину и точностиь.
Очередной пример использования выкладываю.
ЗЫ уверен, Алексей быстро поправит и выложит нормальную сборку