![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Variants and Objects
Juice © (2005-08-23 12:09:00)Обязательно ли нужно создать пользовательский вариантный тип, чтобы сохранить обьект (как ссылку) в вариантной переменной ?
var
v : Variant;
o : TObject;
p : pointer;
begin
v := o; //error
v:= p; //error
Leonid Troyanovsky (2005-08-23 14:36:00) [1]
> uice © (23.08.05 13:08) [5]
> Ну если о приведении зашла речь, то еще такой вопрос. Как
> привести Open Array к аналогичному Dynamic Array?
..
> Есть ли такое приведение типов или нужно в цикле копировать
В цикле, конечно. RTFM: TVarRec type.
И зачем такие конструкции, как array of Variant,
когда есть VarArrayCreate, VarArrayOf.
--
Regards, LVT.
Juice (2005-08-23 13:08:00) [2]Ну если о приведении зашла речь, то еще такой вопрос. Как привести Open Array к аналогичному Dynamic Array?
procedure Test(OpenParams : array of Variant);
var
DynParams : array of Variant;
begin
DynParams := OpenParams; //error
end;
Причем в заголовке функции хочу использовать именно OpenArray, чтобы я мог вызывать ее как Test([1,2,3]);
Есть ли такое приведение типов или нужно в цикле копировать ?
Fay (2005-08-23 12:25:00) [3]2 Juice © (23.08.05 12:23) [3]
TObject(Cardinal(x))
Juice (2005-08-23 12:23:00) [4]TObject(Pointer(Integer(x))) зато так прокатило
Juice (2005-08-23 12:22:00) [5]А обратно ?
TObject(Pointer(v)) не катит
Fay (2005-08-23 12:16:00) [6]2 Juice © (23.08.05 12:09)
v := Cardinal(p);