Показать сообщение отдельно
  #14  
Старый 16.05.2015, 13:58
Аватар для Homo-Fantasmus
Homo-Fantasmus Homo-Fantasmus вне форума
Прохожий
 
Регистрация: 23.08.2011
Адрес: МО
Сообщения: 46
Версия Delphi: Delphi, Lazarus
Репутация: 10
По умолчанию Решение найдено

Кажется я всё слишком усложнил ...
Прописывать в коде -
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.
__________________
Как завещал товарищ Ленин: УЧИТЬСЯ! УЧИТСЯ! И ЕЩЁ РАЗ УЧИЦЦА!
Ответить с цитированием