Кажется я всё слишком усложнил ...
Прописывать в коде -
AutoCAD.Application.18
*.19
*.20
- это всё не нужно ...
Нужно только подцепить библиотеку для последней версии ACada например для 2015
И можно будет работать с Автокадами версий 2014, 2013, 2012; будут ли работать версии ниже 2012 не знаю, но мне это и не нужно...
Код:
unit Unit1;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, ComObj, Vcl.StdCtrls,Vcl.OleServer, AutoCAD_TLB,
Vcl.Menus;
type
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
Button2: TButton;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
AcadApp: IAcadApplication;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
Function GetAcadApplication(Visible: Boolean): IAcadApplication;
var
v : OleVariant;
begin
Try v := GetActiveOleObject('AutoCAD.Application');
Except
AutoCad
v:= CreateOleObject('AutoCAD.Application');
end;
Result := IDispatch(v) as IAcadApplication;
if Visible then Result.Visible := True;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
AutoCad
FormStyle:= fsStayOnTop;
AcadApp:= GetAcadApplication(true);
end;
end.