Тема: Как использовать функцию 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;

        Заранее спасибо Дмитрий

Re: Как использовать функцию GetEntity в Delphi?

var
    ent : AcadEntity;
    bref : IAcadBlockReference;
begin
     AcadDoc.Utility.GetEntity(disp,Basepnt,'Выберите объект');
     ent:=disp as AcadEntity;
     bref:=ent as AcadBlockReference;
end;
До блока можно так достучаться...у bref есть name

Re: Как использовать функцию GetEntity в Delphi?

Да забыл в var
disp : IDispatch;

Re: Как использовать функцию GetEntity в Delphi?

Спасибо
С уважением Дмитрий