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

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

ВDS 2006 тоже не поддерживает custom variant byRef


Страницы:   1 2 3

oxffff ©   (2006-09-14 23:21:00) 

Я уже писал о том, что Delphi 7 не поддерживает custom variant by ref. Дисскуссия шла где в июне-июля. Уже в архивах.
Сейчас установил BDS 2006. Решил проверь, а как же там дела с этим. К сожалению все также.

Ну во первых естественно в вызове VarCopy->VarCopyDeep

И далее строчки
 // otherwise try for custom
 else if FindCustomVariantType(Source.VType, LSourceHandler) then
   LSourceHandler.Copy(Dest, Source, False)

Во первых FindCustomVariantType не найдет custom variant.
И во вторых вызывается direct copy

Если вызвать VarCopyNoInd(a,b).

То все равно будет ошибка поскольку FindCustomVariantType не найдет helper класс .

Кто хочет убедиться пожалуйста код

var a,b:variant;
begin
//here some custom variant by ref
tvardata(a).VType:=273 or varByRef;
a:=b; exception is generated
VarCopyNoInd(a,b); exception is generated

QC молчит.


oxffff   (2006-09-15 10:12:00) [41]

Собственно сабж посвещен тому, чтобы указать,
что custom variant byRef не поддерживается нормальными средствами.


jack128   (2006-09-15 02:07:00) [42]

проще написать свой record, перегрузив нужные операторы, чем с этими вариантами парится.


oxffff   (2006-09-14 23:25:00) [43]

Естественно приведенный код не требует helper класса. Поскольку до него дело не дойдет по причине  FindCustomVariantType не работает с By ref.
Естественно поправить ее очень легко. Я уже писал об этом летом.


Страницы:   1 2 3

Наверх

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