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

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

Помогите разобраться с ошибкой 'Invalid variant type' [D7, WinXP]


Sectey ©   (2004-08-25 13:39:00) 

Совершенно неожиданно возникает ошибка :
raised exception class EVariantBadVarTypeError with message nvalid variant type'.
Вот код :

type
 TFieldValue = packed record
   FieldName : String;                                             Value : variant;                                          
 end;
 PFieldValue = ^TFieldValue;

function TCmdGetLookupFields.AddField(AFieldName: string): integer;
var
 p : PFieldValue;
begin
 Result := -1;
 if AFieldName = '' then
   Exit;
 if IndexOfName(AFieldName) < 0 then
 begin
   GetMem(p,  sizeof(TFieldValue));
   try
     p^.FieldName := AFieldName;
     p^.Value := null;
<-Вот здесь и возникает ошибкаПри этом не всегда, при отладке ни разу не вылетела, а в рунтайме периодически.
     Result := FFields.Add(p);
   except
     FreeMem(p);
     Result := -1;
   end
 end;
end;


Sectey   (2004-08-25 14:16:00) [1]

Спасибо большое


Skier   (2004-08-25 14:02:00) [2]

угу.
она у тебя не Empty, a Unassigned
посмотри справку по Unassigned...


Sectey   (2004-08-25 13:59:00) [3]

>Skier ©
True - ведь переменная  не определена.

Ага т.е. variant лучше не инициализировать?


Skier   (2004-08-25 13:53:00) [4]

А что вернёт VarIsEmpty(p^.Value) ?


Наверх

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