Variant/es

From Lazarus wiki
Jump to navigationJump to search

Deutsch (de) English (en) español (es) français (fr) polski (pl)


Volver a tipos de datos.


Requisitos de memoria para compilación de 32 bits: 16 Bytes o 128 Bits

Requisitos de memoria para compilación en 64 Bits: 24 Bytes o 192 Bits

Propiedad: el tipo e datos Variant ofrece una gran flexibilidad en programación, pero la variable tipo de datos Variant necesita más memoria que los campos de datos / variables normales. Las variables con el tipo de datos variant, con la excepción de los valores de los tipos de datos del almacén estructuras de tipo de datos arbitrarios. Las operaciones con el tipo de datos Variant son considerablemente más lentos que con los tipos estáticos campos de datos / variables.

Dos ejemplos de las funciones de la unidad Variants:

La función VarType () comprueba el tipo de datos de los contenidos de una variable de tipo de datos Variant.

La función VarToStr() convierte el contenido de una variable de tipo de datos Variant en la cadena de tipo de datos.

Definición de un campo de datos del tipo de datos Variant:

var
  v: Variant;

Definición de los tipos de datos para los ejemplos:

var
  v: Variant;
  s: String;
  i: Integer;

Ejemplo 1:

  // Asignación de valor:
  v := 1;
  // Ejemplos válidos de Castings / asignaciones tipo / conversiones del tipo de datos
  // Conversiones explícitas de tipos de datos
  s := VarToStr(v);
  s := AnsiString(v);
  i := Integer(v);
  // Conversión implícita del tipo de datos 
  i := v;

Ejemplo 2:

  // Asignación de valor:
  v := 'Tomate';

  // Ejemplos de válidos Castings / asignaciones tipo / conversiones del tipo de datos:
  // Conversión explícita del tipo de datos.
  s := VarToStr(v);
  s := AnsiString(v);

Ejemplo 3:

 //Ejemplo para la determinación del tipo de datos de los contenidos de un campo de datos del tipo de datos Variant :
 Case varType(v) of
    varEmpty:
        ShowMessage('Vacio');
    varNull:
        ShowMessage('Null');
    varSingle:
        ShowMessage('Tipo de dato: Single');
    varDouble:
        ShowMessage('Tipo de dato: Double');
    varDecimal:
        ShowMessage('Tipo de dato: Decimal');
    varCurrency:
        ShowMessage('Tipo de dato: Currency');
    varDate:
        ShowMessage('Tipo de dato: Date');
    varOleStr:
        ShowMessage('Tipo de dato: UnicodeString');
    varStrArg:
        ShowMessage('Tipo de dato: COM-compatible string');
    varString:
        ShowMessage('Tipo de dato: puntero a una cadena de expansión dinámica');
    varDispatch:
        ShowMessage('Tipo de dato: puntero a un objeto de automatización');
    varBoolean:
        ShowMessage('Tipo de dato: Wordbool');
    varVariant:
        ShowMessage('Tipo de dato: Variant');
    varUnknown:
        ShowMessage('Tipo de dato: desconocido');
    varShortInt:
        ShowMessage('Tipo de dato: ShortInt');
     varSmallint:
        ShowMessage('Tipo de dato: Smallint');
    varInteger:
        ShowMessage('Tipo de dato: Integer');
    varInt64:
        ShowMessage('Tipo de dato: Int64');
    varByte:
        ShowMessage('Tipo de dato: Byte');
    varWord:
        ShowMessage('Tipo de dato: Word');
    varLongWord:
        ShowMessage('Tipo de dato: LongWord');
    varQWord:
        ShowMessage('Tipo de dato: QWord');
    varError:
        ShowMessage('mensaje de error del sistema operativo');
 else
   ShowMessage('Otros tipos o condiciones de los datos');
 end;