Реклама i
|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
импорт библиотеки типов Acad в Delphi
машиностроение
Москва
Регистрация: 22.03.2005
Сообщений: 56
|
||
Просмотров: 11059
|
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
Цитата:
Но в той статье написано: "Для самостоятельного ознакомления с объектной моделью AutoCad желательно транслировать в Delphi библиотеку типов AutoCad. Для AutoCad 2004 - это файл acax16enu.tlb, для более ранних версий - acad.tlb. Для этого в меню project выберете пункт меню Import Type Library. Появится окно для выбора прописанных в системном реестре библиотек типов. Может так случиться, что нужной нам библиотеки мы не найдём. Тогда щёлкните на кнопку Add (добавить) и вручную добавьте один из указанных выше файлов." И только потом картинка диалога. Если разжевать, то Шаг 1. Создайте в среде Delphi новое приложение, а затем в меню Project выберите пункт Import Type Library Шаг 2. Щелкните по кнопке Add и выделите файл c:\Program Files\Common Files\Autodesk Shared\acax16enu.tlb. Шаг 3. В списке Import Type Library появится элемент AutoCAD 2004 Type Library (Version 1.1). Выберите его, и заполнится список Class names. Шаг 4. Щелкните по кнопке Install — в каталоге Imports Delphi автоматически сгенерируется файл AutoCAD_TLB.pas, в котором и объявлен весь интерфейс сервера. Далее как в статье Но надо иметь ввиду, что библиотека типов - самое недоделанное место. Это же не для пользователей, поэтому бродяги-программисты могут ее выпускать незавершенной. Потому и ошибки. Да и с каждым билдом Автокада библиотека типов может меняться. При ошибке компиляции просто заремьте ошибочные строки. Работать с "компонентами", импортированными из ЕДИ надо очень осторожно. В ней прописаны конкретные GUID для определенной версии. В другой версии (даже минорной) могут быть другие объявления. Программа может оказаться неработоспособной. Лучше работать без импорта. И не особо полагаться что легко будет "вставлять из программы на Делфи в Акад простые объекты". AutoCAD в Delphi-программу не встроить. А самостоятельному - делать больше нечего, как откликаться на всякие левые призывы. |
|||
![]() |
|
||||
машиностроение Регистрация: 22.03.2005
Москва
Сообщений: 56
|
Цитата:
И даже при компиляции заремил ошибку, возникающую в AutoCad_tlb.pas но мне непонятно, как автор создал три новых коипонента. В своих примерах он обращается к компоненту AcadDocument, которогоя как раз и не сумел создать. Ну и конечно же вылезает ошибка еще при загрузке проекта. Цитата:
|
|||
![]() |
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
Цитата:
Код:
Цитата:
Без импорта TLB надо использовать объявления в виде var Acad : OleVariant; а не AcadDocument1: TAcadDocument; и т.п. |
|||
![]() |
|
||||
проектирование транспортных сооружений Регистрация: 26.04.2005
Москва
Сообщений: 107
![]() |
Добрый день!
Автор вышеупомянутой татьи - это я. Признаюсь, когда я пишу приложения под AutoCAD, созданные при импортировании библиотекитипов компоненты я не использую. Вместо этого я подключаю модуль с описанием интерфейсов и классов AutoCAD в раздел uses и использую основную переменную AcadApp: IAcadApplication. А моя статья предназначена для людей, которые достаточно хорошо знают Delphi и не знают объектной модели Delphi. Безусловно, примеры, описанные в статье, мягко выражаясь, сырые. Владимиру В: Компоненты я лично не создавал! Это сделала среда Delphi. Для этого не надо было отключать "галочку" Generate Component Wrapper в окне импорта библиотек типов. |
|||
![]() |