Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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);


Наверх

Титульная страница Поиск, карта сайта Написать письмо