type Variant;
Тип данных Variant обеспечивает гибкий универсальный тип данных. Он может содержать всё, но структурированные данные и указатели. Но используйте с осторожностью, так как при использовании Variant код приобретает неясность и приобретает потенциальные ошибки при выполнении программы. Используйте VarType вместе с VarTypeMask, чтобы определить текущий типы данных, в который установлен Variant. Тип Variant полезен в очень определенных обстоятельствах, где типы данных и их содержание определяются во время выполнения, а не во времени компиляции.
|
var myVar : Variant; begin // Назначение различных значений Variant // и затем показ результирующего типа Variant ShowMessage('Variant значение = not yet set'); ShowBasicVariantType(myVar); // Простое значений myVar := 123; ShowMessage('Variant значение = 123'); ShowBasicVariantType(myVar); // Вычисленное значение, используя Variant и константу myVar := myVar + 456; ShowMessage('Variant значение = 123 + 456'); ShowBasicVariantType(myVar); myVar := 'String '+IntToStr(myVar); ShowMessage('Variant значение = String 579'); ShowBasicVariantType(myVar); end; // Показ тип variant procedure TForm1.ShowBasicVariantType(varVar: Variant); var typeString : string; basicType : Integer; begin // Получение основного типа Variant : // это означает, исключение массива или косвенных модификаторов basicType := VarType(varVar) and VarTypeMask; // Установка строки для согласования типа case basicType of varEmpty : typeString := 'varEmpty'; varNull : typeString := 'varNull'; varSmallInt : typeString := 'varSmallInt'; varInteger : typeString := 'varInteger'; varSingle : typeString := 'varSingle'; varDouble : typeString := 'varDouble'; varCurrency : typeString := 'varCurrency'; varDate : typeString := 'varDate'; varOleStr : typeString := 'varOleStr'; varDispatch : typeString := 'varDispatch'; varError : typeString := 'varError'; varBoolean : typeString := 'varBoolean'; varVariant : typeString := 'varVariant'; varUnknown : typeString := 'varUnknown'; varByte : typeString := 'varByte'; varWord : typeString := 'varWord'; varLongWord : typeString := 'varLongWord'; varInt64 : typeString := 'varInt64'; varStrArg : typeString := 'varStrArg'; varString : typeString := 'varString'; varAny : typeString := 'varAny'; varTypeMask : typeString := 'varTypeMask'; end; // Показ типа Variant ShowMessage('Variant тип = '+typeString); end;
|