Тема: Как использовать функцию GetEntity в Delphi?
{ Пожалуйста подскажите как использовать функцию GetEntity в delphi.
Есть чертеж с множеством блоков, при выборе блока необходимо выводить определенную
информацию. Реализация на Visual Basic ивыглядит так
Private returnObj As AcadObject Private Obj As AcadObject Private basePnt As Variant Private sw As String Private idcur As String Private ars As ADODB.Recordset Private i As Boolean Dim lRet As Long Dim mstrform As String On Error Resume Next Set acadapp = GetObject(, "AutoCAD.Application") If Err Then Err.Clear Set acadapp = CreateObject("AutoCAD.Application") If Err Then MsgBox "Unable to connect to AutoCAD" Exit Sub End If End If ret: Set doc = acadapp.Application.ActiveDocument doc.Utility.GetEntity returnObj, basePnt, "Выберите объект" sw = returnObj.name дальше идет выбор определенных данных (критерием является то что записано в свойстве .name На Delphi код такой procedure taccess_acad.access(); var returnObj : idispatch; g:iacadobject; //: variant; basePnt,s: olevariant; name: string; begin Try// Пытаемся найти активный AutoCAD AcadApplication := GetActiveOleObject('AutoCAD.Application') as IAcadApplication; except// Если работающий AutoCAD не найден try// Пытаемся запустить AutoCAD AcadApplication := CreateOleObject('AutoCAD.Application') as IAcadApplication; except MessageDlg('AutoCAD не найден', mtError, [mbOK], 0); end; end; if AcadApplication = nil then begin MessageDlg('Ошибка соединения с AutoCAD', mtError, [mbOK], 0); end else AcadApplication.Visible:=true; end; try ActiveDoc.Utility.GetEntity(returnObj, basePnt, 'Выберите объект'); Функция возвращает параметр returnObj: idispatch Я его привожу к типу AcadObject g:= returnObj as iacadobject; Но свойства .name у объекта типа iacadobject нет( что впринципе правильно) Оно есть у Acadblock который я выбираю Вопрос в том как дальше использовать returnObj, чтобы использовать это свойство AutoCAD', mtError, [mbOK], 0); except MessageDlg('AutoCAD ', mtError, [mbOK], 0); end; end;
Заранее спасибо Дмитрий