sfsf |
Отправлено: 26.04.2006, 13:24 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 2
|
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; |
|
Aptem |
Отправлено: 27.04.2006, 04:44 |
|
Мастер участка
Группа: Участник
Сообщений: 349
|
Я не знаю как с AutoCAD, но с Excel работает:
CODE |
#include <OleServer.hpp>
#include <OleCtrls.hpp>
Variant App, Sheet;
App = CreateOleObject ( "Excel.Application" );
App.OlePropertyGet ( "WorkBooks" ).OleProcedure ( "Open", Edit1 -> Text.c_str () );
Sheet = App.OlePropertyGet ( "WorkSheets", 1 ); |
|
|
sfsf |
Отправлено: 28.04.2006, 15:31 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 2
|
Result := IDispatch(v) as IAcadApplication;
Вот с этой строчкой помогите |
|
Aptem |
Отправлено: 30.04.2006, 15:50 |
|
Мастер участка
Группа: Участник
Сообщений: 349
|
QUOTE (sfsf @ 28/04/2006, 15:31) | Result := IDispatch(v) as IAcadApplication;
Вот с этой строчкой помогите |
Конкретно с этой строчкой не помогу, но если это используется для проверки видимости приложения, то может вот это подойдет?
CODE |
App.OlePropertySet ( "Visible", true ); |
|
|