C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
перевести функцию из Делфи в с++ builoder 6
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 );

Вернуться в Вопросы программирования в C++Builder