Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / PSafeArray и CreateOleObject / 4 сообщений из 4, страница 1 из 1
19.05.2003, 23:58
    #32163513
Guest_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PSafeArray и CreateOleObject
Почему, при написании следующего кода:
var
PSA:PSAfeArray;
myobj:Variant;
begin
myobj:=createoleobject('Mycom.obj');
myobj.met(PSA);
компилятор выдает такую ошибку: Type not allowed in Variant dispatch call?
как тогда передать параметр-массив? Кроме того, PSafeArray - это же один из типов Ole Automation!
...
Рейтинг: 0 / 0
20.05.2003, 09:29
    #32163608
?gr?
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PSafeArray и CreateOleObject
procedure Test(const Value: Variant);
var
VParam: OleVariant;
myobj:Variant;
begin
myobj:=createoleobject('Mycom.obj');
VParam := VarArrayCreate([0, 0], varVariant);
VParam[0] := Value;
myobj.met( PSafeArray (TVarData(VParam).VArray));
end;
...
Рейтинг: 0 / 0
20.05.2003, 09:53
    #32163637
Guest_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PSafeArray и CreateOleObject
Это ничего не меняет. тип параметра то приводится к PSafeArray. и ошибка та же.
...
Рейтинг: 0 / 0
21.05.2003, 13:27
    #32165023
ziktuw
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PSafeArray и CreateOleObject
Попробуй туда просто передать сформированный VarArray. Может прокатить.

А дело вот в чем. pSafeArray - действительно OLE-совместимый тип, но он не является одним из подтипов Variant. Поэтому там где ожидается Variant-переменная, нельзя поместить pSafeArray. Приведенный код с поздним связыванием как раз такой. Вот если бы импортнуть библиотеку типов, и в методе увидеть параметр именно типа pSafeArray, то там прокатило бы.
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / PSafeArray и CreateOleObject / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]