TIfVariant
Unit: ifs_var.pas
TIfVariant is used to store all types of variables in the script engine.
Declaration:
PIfVariant = ^TIfVariant;
TIFVariant = record
VType: PTypeRec;
Flags: Byte; {Readonly(Const) = 1}
case Word of
CSV_UByte: (CV_UByte: Byte);
CSV_SByte: (CV_SByte: ShortInt);
CSV_Char: (CV_Char: Char);
CSV_UInt16: (CV_UInt16: Word);
CSV_SInt16: (CV_SInt16: {$IFDEF I32}SmallInt{$ELSE}Integer{$ENDIF});
CSV_UInt32: (CV_UInt32: {$IFDEF I32}Cardinal{$ELSE}LongInt{$ENDIF});
CSV_SInt32: (CV_SInt32: LongInt);
CSV_String: (CV_Str: string);
CSV_Real: (CV_Real: Real);
CSV_Single: (CV_Single: Single);
CSV_Double: (CV_Double: Double);
CSV_Extended: (CV_Extended: Extended);
CSV_Comp: (CV_Comp: Comp);
CSV_Bool: (CV_Bool: Boolean);
CSV_Var: (CV_Var: Pointer);
CSV_Array: (CV_ArrItems: TifList);
CSV_Record: (CV_RecItems: TIfList);
CSV_Class: (CV_Class: PCreatedClass);
CSV_Internal: (Cv_Int1,CV_Int2: Pointer);
CSV_ClassRef: (Cv_ClassRef: PTypeRec);
CSV_Property: (CV_Self, Cv_PropRead, CV_PropWrite: Pointer; CV_PropFlags: Word);
CSV_ProcVariable: (Cv_Proc: pointer; Cv_ProcSelf: PCreatedClass);
CSV_Special: (CV_Spec: Byte { 0 = nil pointer });
CSV_ExternalObject: (CV_ExternalObject: Pointer {PCreatedCustomObject});
CSV_ExternalObjectProperty: (CV_ExtObj: Pointer; CV_PropertyNo: Longint);
CSV_Variant: (CV_Variant: PIfVariant); // always created!
end;