Форум: "Corba";
Текущий архив: 2005.03.06;
Скачать: [xml.tar.bz2];
ВнизКак использовать в Delphi тип, объявленный внутри OLE объекта? Найти похожие ветки
← →
Koster (2004-05-24 15:41) [0]Как использовать в Delphi тип, объявленный внутри OLE объекта?
Объект: ServerName.Class
var
Server: Variant;
begin
Server := CreateOleObject("ServerName.Class");
....
Server.Test2( структура );
....
Server := Unassigned;
end.
Процедура Test2 требует на вход переменную типа, объявленного в самом сервере
как ServerName.Type1 (это структура).
Надо заполнить поля этой структуры и передать процедуре.
Как это сделать?
1) как объявить переменную такого типа в Delphi?
2) или как создать вариантную переменную такого типа в Delphi?
Нужно что-то типа:
var
Server: Variant;
Struct: ServerName.Type1;
begin
Server := CreateOleObject("ServerName.Class");
....
Struct.b1 := 1;
Struct.b2 := 2;
Server.Test2( Struct );
....
Server := Unassigned;
end.
Тип: ServerName.Type1
структура (на VB):
Type Type1
b1 As Boolean
b2 As Byte
b3 As Single
b4 As Byte
b5 As Byte
b6 As Byte
s1 As String
End Type
← →
Nikolay M. © (2004-05-25 17:52) [1]Через OleVariant?
← →
Ломброзо © (2004-05-26 00:43) [2]импортировать библиотеку типов (или там, tlibimp xxx.dll), посмотреть сгенерированный код струкуры, затем CtrlC, затем CtrlV, и отключить библиотеку типов?
← →
Koster (2004-05-26 14:35) [3]Очевидно, какой-то комбинацией первого и второго.
Потому что если импортировать библиотеку типов, то тип-структура создается, но передается параметр интерфейсу через OleVariant.
Причем ни разу переменная типа структура не конвертируется в OleVariant (а принимается извне уже как готовый параметр типа OleVariant).
Так вот и вопрос - как же такой OleVariant создать... В лоб делать
var v: variant;
begin
v.b1 := ...
v.b2 := ..
end;
нельзя, т.к. v - еще не структура...
хорошо бы так:
var v: variant;
v1: TType1; // созданный в модуле импорта библиотеки типов
begin
v1.b1 := ...
v1.b2 := ..
v := v1; // конвертировать!!!
end;
Нет ли простой функции в модуле Variants, делающие преобразование любой переменной в вариант?
Вроде по справке не нашел.
Страницы: 1 вся ветка
Форум: "Corba";
Текущий архив: 2005.03.06;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.035 c