Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 17.11.2014, 22:53
Аватар для Homo-Fantasmus
Homo-Fantasmus Homo-Fantasmus вне форума
Прохожий
 
Регистрация: 23.08.2011
Адрес: МО
Сообщения: 46
Версия Delphi: Delphi, Lazarus
Репутация: 10
По умолчанию Подключение библиотеки Acad в Delphi

Всем привет!
Нужна помощь в подключении библиотеки Acad и компонентов Acad

Я работаю в RAD Studio XE6, нужно подключить библиотеку Acad и компоненты
AcadAcCmColor
-AcadDataBase
-AcadSecurityParams
-AcadLayerStateManager
-AcadDocument

На просторах нэта много материалов как это сделать, но все материалы касаются Delphi 7 и очень краткие в части касающейся подключения.

Вот типичный пример:
"В данной статье рассматривается связка Delphi 7 и AutoCAD 2004, если у вас более поздняя версия какого-то из программных продуктов, то это не страшно, так как принцип работы останется тот же самый.

Сначала импортируйте библиотеку AutoCAD в Delphi, для этого выберите пункт меню ProjectImport Type Library, далее нажмите кнопку Add и добавьте файл acax16enu.tlb, найти его можно по адресу C:Program FilesCommon FilesAutodesk Shared, после чего инсталлируйте новый набор ActiveX компонентов в систему.

Вам станет доступно 5 новых компонентов:
-AcadAcCmColor
-AcadDataBase
-AcadSecurityParams
-AcadLayerStateManager
-AcadDocument

Обязательно загляните в модуль AutoCAD_TLB.pas, который появится после установки новых компонентов, вы как разработчик сможете почерпнуть из него много полезной информации, а также в файл справки AutoCAD - acad.chm, особенное внимание уделите разделам ActiveX and VBA Developer's Guide и ActiveX and VBA Reference, где можно найти сведения о методах, свойствах и объектах AutoCAD" и т.д. и т.п.


Опишу как я подключаюсь...

1)Меню -> COMPONENT -> IMPORT COMPONENT



2) Появляется окно:



3)Первый пункт собственно импорт библиотеки то что нужно, жмём next.
Далее мы видим следующее окно...



В этом окне нужно выбрать собственно библиотеку в моём случае это AutoCad 2015 Type library, жмём next
Видим следующее окно...



Тут нужно как я понимаю указать куда собственно должны быть установлены новые компоненты Acadа

Выбираем ActiveX и жмём NEXT

Далее появится окно с многообещающей надписью в переводе с пиндосского:

Выберите создать unit или добавить уже созданный unit в активный пакет. После того как устройство добавит пакет его можно будет установить с помощью диалога установщика пакетов.

и четырьмя radiobutton (флажками) с надписями :
*Создать unit
*Установите в существующий пакет
*Установите в новый пакет
*Добавить unit в проекте Project1.dproj


Выбираем последний вариант и жмём многообещающую кнопку Finish
и видим, что библиотека вроде как подключилась к проекту, в Project Manager появился файл AutoCad_TLB.pas

Но в инструментальных палитрах в вкладке ActiveX (место установки компонентов выбрано ActiveX см. последний скриншот)- ни чего нового не появилось, а должны были как я понимаю появиться новые компоненты:

-AcadAcCmColor
-AcadDataBase
-AcadSecurityParams
-AcadLayerStateManager
-AcadDocument

ВНИМАНИЕ ВОПРОС:
КАК ВСЁ ТАКИ ДОБАВИТЬ ЭТИ КОМПОНЕНТЫ В ИНСТРУМЕНТАЛЬНУЮ ПАЛИТРУ?

Чувствую ответ на этот вопрос кроется в сакраментальной (что бы это не значило) надписи : .... После того как устройство добавит пакет его можно будет установить с помощью диалога установщика пакетов.

ТАКИ ЧТО НУЖНО СДЕЛАТЬ ?
КАКОЙ ПАКЕТ?
Наличие файла AutoCad_TLB.pas означает что пакет добавлен или нет?
КАК УСТАНОВИТЬ ?

Правда несмотря на отсутствие компонентов, библиотека работает
Если создать форму и кинуть на неё одну кнопку, а после закодить примерно так:
Код:
unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, AutoCAD_TLB, ComObj, Vcl.StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure Button1Click(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
// пытаемся присоединиться к уже запущенной копии AutoCad
    v := GetActiveOleObject('AutoCAD.Application');
  Except
// если не получилось присоединиться, то запускаем новую копию AutoCad
    v:= CreateOleObject('AutoCAD.Application');
  end;
// приводим переменную типа OleVariant к типу IAcadApplication
  Result := IDispatch(v) as IAcadApplication;
// далее проверяем, надо ли делать приложение AutoCad видимым
  if Visible then Result.Visible := True;
end;

Procedure TForm1.FormCreate(Sender: TObject);
begin
// делаем так, что бы наша форма отображалась всегда поверх окна AutoCad
  FormStyle:= fsStayOnTop;
  Button1.Caption:= 'Текущий чертёж';
// присоеденимся к приложению AutoCad
  AcadApp:= GetAcadApplication(true)
end;


procedure TForm1.Button1Click(Sender: TObject);
begin // В заголовке нашей формы напишем
// наимонавание текущего чертежа
Caption:= AcadApp.ActiveDocument.Name;
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin  // при закрытии нашей программы закроем AutoCad
  AcadApp.Quit;
end;

end.

То произойдёт собственно запуск ACada.


КАК ВСЁ ТАКИ ДОБАВИТЬ ЭТИ КОМПОНЕНТЫ В ИНСТРУМЕНТАЛЬНУЮ ПАЛИТРУ?

Последний раз редактировалось Homo-Fantasmus, 15.12.2014 в 21:19.
Ответить с цитированием
  #2  
Старый 17.11.2014, 23:46
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,100
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Что бы компоненты появились на палитре надо устанавливать их в существующий или новый ПАКЕТ КОМПОНЕНТОВ, а не в свой проект. Хотя и это не проблема, но придется их создавать тогда "ручками" в ран-тайме.
Весь вопрос только в том, что тебе от этих компонентов надо. Если не надо ничего показывать на экран, а всего-лишь получить некоторую информацию, то и этого достаточно. Если надо показать чертеж, то тогда лучше установить как компоненты и "набросать" их на форму.
Ответить с цитированием
  #3  
Старый 18.11.2014, 00:11
Аватар для Homo-Fantasmus
Homo-Fantasmus Homo-Fantasmus вне форума
Прохожий
 
Регистрация: 23.08.2011
Адрес: МО
Сообщения: 46
Версия Delphi: Delphi, Lazarus
Репутация: 10
По умолчанию

Цитата:
Сообщение от lmikle
Что бы компоненты появились на палитре надо устанавливать их в существующий или новый ПАКЕТ КОМПОНЕНТОВ, а не в свой проект.

Т.е.



на этом этапе нужно выбрать Install to New Package
дальше появляется окно



В Package Name я просто забиваю произвольный Name например Acad ?
Что я должен забить в поле Description ?
И что это такое Description ?

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

Если нужно сначала инсталлировать Package, то опять же не понятно как?

Меню ->Component -> Install Packages
Далее появляется окно:



если нажать кнопку Add далее предлагается выбрать "package library" файл с расширением *.bpl

Что это за файл и где его взять?

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

Можно с этого места объяснить по подробнее?
Очень выручите ...

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

Ну где вы гуру Delphi и аполлоны программирования ?
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 17:54.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025