Вниз
Скачать: CL | DM;

Получение параметров из Cом объекта.   Найти похожие ветки 

← →
kostya ©   (2002-04-03 09:50) [0]

У меня проблема следующего рода: Написал Com, в Delphi он прекрасно работает, но когда использую его в VBA, то все функции работают нормально, кроме тех, в которых, возвращаемый параметр строка. В макросе вылетает ошибка "клиент отключен от объекта".


← →
Dimka Maslov ©   (2002-04-03 09:56) [1]

В Com-объектах, если они исплоьзуются в VBA нельзя использовать строки, как параметры, возвращаемые функцией. Попробуй заменить такие методы интерфейсов следующим образом

было:
function SomeFunc(Params): PChar;

надо:
function SomeFunc(Params; out ResultStr: LPCTSTR): HResult;




← →
Digitman ©   (2002-04-03 09:57) [2]

приведи декларацию и реализацию интерфейсного функц.метода, вызов которого из VBA вызывает сию проблему


← →
kostya ©   (2002-04-03 10:27) [3]

To Digitman

function TSearchFile.GetFileName(Number_: Integer): WideString;
begin
Result:=FileList.Strings[Number_]
end;



← →
kostya ©   (2002-04-03 11:05) [4]

To Dimka Maslov
а что за тип LPCTSTR мне чего то такой не установить :((


← →
Dimka Maslov ©   (2002-04-03 11:13) [5]

или можно и out WideString


← →
Dok_3D ©   (2002-04-03 11:38) [6]

Можно out OleVariant,
если эта вариантная переменная будет иметь стринговое значение, то VBA ее прекрасно поймет.


← →
Digitman ©   (2002-04-03 12:12) [7]

>kostya

никаких WideString ! только - OleVariant будет работать на стыке с VBA.


← →
kostya ©   (2002-04-03 12:46) [8]

function Tfindfile.GetNameNew(No: Integer;
out PathFile: WideString): WordBool;
begin
try
PathFile:=FileList.Strings[No];
finally
Result:=True
end;
end;

Работает нормально.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.006 c
1-46375
Тема
2002-04-01 19:07
2002.04.15
Какую книгу выбрать


1-46388
Xpyctuk
2002-03-26 11:58
2002.04.15
Кто-нибудь знает как работать с компонентой IdBase64Encoder


1-46427
RUS1
2002-04-01 15:57
2002.04.15
Как проверить что файл занят другим приложением


1-46399
Schummi
2002-03-30 08:08
2002.04.15
Panel:=TPanel.Create(Form);


1-46395
RUS1
2002-04-01 14:19
2002.04.15
Дебагер ошибку выдает и такую невкусную!!!!




   Наверх