powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / PSafeArray и CreateOleObject
4 сообщений из 4, страница 1 из 1
PSafeArray и CreateOleObject
    #32163513
Guest_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почему, при написании следующего кода:
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
PSafeArray и CreateOleObject
    #32163608
?gr?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
PSafeArray и CreateOleObject
    #32163637
Guest_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это ничего не меняет. тип параметра то приводится к PSafeArray. и ошибка та же.
...
Рейтинг: 0 / 0
PSafeArray и CreateOleObject
    #32165023
Фотография ziktuw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуй туда просто передать сформированный VarArray. Может прокатить.

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


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