Тема: Метод Highlight при позднем и раннем связывании
Странное дело - метод Highlight отказывается работать при подключении по методу позднего связывания, грит:
"Method 'Highlight' not supported by automation object."
вот мой код (с поздним связыванием)
var inAcObjID: integer; vaBlock: OleVariant; begin vaBlock := vaDoc.ObjectIdToObject(inAcObjID); ShowMessageFmt('%d: %s, %s', [inAcObjID, vaBlock.Name, vaBlock.ObjectName]); vaBlock.Highlight(true); end;
ShowMessage выдает текст вида "2130370680: Вложеный круг, AcDbBlockTableRecord"
Вот работающий код при подключении с ранним связыванием (c использованием AutoCAD_TLB)
var BLR: IAcadBlockReference; ObjectId: integer; begin BLR := AcadDoc.ObjectIdToObject(ObjectId) as IAcadBlockReference; BLR.Highlight(true); end;
Идентификаторы объектов в обоих случаях указывают на блоки, ранее полученые через vaDoc.Blocks.Item(i) в первом примере и через AcadDoc.PaperSpace.Item(i) во втором.
Подскажите в чем может быть дело и куда надо "рыть".
На раннее связывание перелазить не хочется.