Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.04.15;
Скачать: [xml.tar.bz2];




Вниз

Получение параметров из 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;

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




Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.04.15;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.72 MB
Время: 0.027 c
1-46365           Glonia Zbanov         2002-04-01 14:28  2002.04.15  
Как использовать GetScreenWidth


3-46270           vopros                2002-03-26 09:24  2002.04.15  
Как программно добавить поле в таблицу Paradox. Знаю что вопрос недавно был. Но я его не нашел.


3-46258           B_A_V                 2002-03-25 09:31  2002.04.15  
что выьрать: Seagate Crystal Reports или XL Report G2?


1-46401           JohnKorsh             2002-04-02 09:56  2002.04.15  
Общий вопрос по Delphi.


4-46536           Yonic                 2002-02-12 04:40  2002.04.15  
Как скопировать текст из листбокса?