|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
AcadDocument.PaperSpace.AddTable в Delphi отсутствует
Владимир
Регистрация: 18.06.2007
Сообщений: 7
|
||
Просмотров: 3361
|
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
Если AutoCAD такой версии, в которой не было Table, то откуда объект возьмется?
Если используете раннее связывание и какой-нибудь старый TLB, то результат будет тот же. Импортируйте библиотеку типов заново в Delphi и проверьте, что имеется в созданном PAS. |
|||
![]() |
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
Тогда кто "говорит нет такого "AddTable" ? Если в PAS есть такой метод, то Delphi должна его видеть.
Уберите TLB из uses, уберите все комоненты и работайте с позним связыванием. Возможен еще вариант, что есть другой более старый Автокад на машине и коннект идет к нему. Надо внимательно со строкой "AutoCAD.Application". Возможно, там надо номер версии указать. Проверить, правильные ли GUID в PAS - могла быть импортирована не та библиотека типов. Не исключено, что в AutoCAD 2006 русский чего-то и нет. Надо проверить то же самое сделать через LISP. |
|||
![]() |
|
||||
Регистрация: 20.12.2005
Murmansk
Сообщений: 106
|
//В 2006 м 2007 замечательно работает следующее
//обработчик какой нибудь кнопки procedure TForm1.Button1Click(Sender: TObject); var Acad:variant;//здесь будем хранить ссылку на запущенный Акад Point: OleVariant;//Спец переменная здесь храним точку вставки таблицы T1:variant;//Здесь будем хранить ссылку на таблицу begin try //вылавливаем запущенный автокад Acad:=GetActiveOleObject('Autocad.Application'); except try//если нет, то запускаем. Acad:=createOleObject('Autocad.Application'); except showmessage('Не удается запустить AutoCAD, возможно приложение не установлено. В прочих случаях свяжитель с разработчиком ');end; //а если акада нету, то ругаемся end; Acad.Documents.add('New');//добавляем документ Point:= VarArrayCreate([0, 2], varDouble);//описываем тип переменной Point[0]:=0;//прописываем точку вставки таблицы Point[1]:=150; Point[2]:=0; T1:=Acad.ActiveDocument.ModelSpace.AddTable(Point, 10, 4, 5, 25); // Вуаля добавили таблицу, подробности смотри в объектной модели акада. // и дальше примерно таким макаром T1.SetText(0, 0, 'Заголовок');//Заполняем заголовок T1.SetText(1, 0, '№ т.');//Заполняем шапку T1.SetText(1, 1, ' угол'); T1.SetText(1, 2, ' L'); T1.SetText(1, 3, '№ т.'); Acad.visible:=true;//показыем результат пользователю. T1:=UnAssigned; Acad:=UnAssigned;//отзываем ссылки дабы не поиметь глюков. end; //примерно так //прикрепил собственно саму програмку скомпиленную, с исходниками [ATTACH]1182491504.rar[/ATTACH] Upd ты пытаешься чертить в PaperSpace.... а он у тебя где-нибудь определен? |
|||
![]() |