![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Помогите разобраться с ошибкой '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) ?