Variant/es

From Lazarus wiki
Jump to navigationJump to search

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

Volver al Datentypen.

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áticosCampos de datos / Variables.
Dos ejemplos de las funciones de la unidad Variants:
Die Funktion VarType() prüft von welchem Datentyp der Inhalt einer Variablen vom Datentyp Variant ist.
Die Funktion VarToStr() wandelt den Inhalt einer Variablen vom Datentyp Variant in den Datentyp String.

Definition eines Datenfeldes vom Datentyp Variant:

var
  v: Variant;


Definition der Datenfelder für die Beispiele:

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


Beispiel 1:

  //Wertzuweisung:
  v := 1;

  // Beispiele für zulässige Castings / Typzuweisungen / Konvertierungen des Datentyp: 
  //Explizite Datentyp Konvertierungen:
  s := VarToStr(v);
  s := AnsiString(v);
  i := Integer(v);
  //Implizite Datentyp Konvertierung:
  i := v;


Beispiel 2:

  //Wertzuweisung:
  v := 'Tomate';

  // Beispiele für zulässige Castings / Typzuweisungen / Konvertierungen des Datentyp:
  //Explizite Datentyp Konvertierungen:
  s := VarToStr(v);
  s := AnsiString(v);


Beispiel 3:

 //Beispiel für die Ermittlung des Datentyps des Inhaltes eines Datenfeldes vom Datentyp Variant:
 Case varType(v) of
    varEmpty:
        ShowMessage('Empty');
    varNull:
        ShowMessage('Null');
    varSingle:
        ShowMessage('Datentyp: Single');
    varDouble:
        ShowMessage('Datentyp: Double');
    varDecimal:
        ShowMessage('Datentyp: Decimal');
    varCurrency:
        ShowMessage('Datentyp: Currency');
    varDate:
        ShowMessage('Datentyp: Date');
    varOleStr:
        ShowMessage('Datentyp: UnicodeString');
    varStrArg:
        ShowMessage('Datentyp: COM-compatible string');
    varString:
        ShowMessage('Datentyp: Zeiger auf einen dynamisch erweiterbaren String');
    varDispatch:
        ShowMessage('Datentyp: Zeiger auf ein Automations Objekt');
    varBoolean:
        ShowMessage('Datentyp: Wordbool');
    varVariant:
        ShowMessage('Datentyp: Variant');
    varUnknown:
        ShowMessage('Datentyp: unbekannt');
    varShortInt:
        ShowMessage('Datentyp: ShortInt');
     varSmallint:
        ShowMessage('Datentyp: Smallint');
    varInteger:
        ShowMessage('Datentyp: Integer');
    varInt64:
        ShowMessage('Datentyp: Int64');
    varByte:
        ShowMessage('Datentyp: Byte');
    varWord:
        ShowMessage('Datentyp: Word');
    varLongWord:
        ShowMessage('Datentyp: LongWord');
    varQWord:
        ShowMessage('Datentyp: QWord');
    varError:
        ShowMessage('Fehlermeldung des Betriebsystems');
 else
   ShowMessage('Sonstiger Datentyp oder Zustand');
 end;



--Olaf 17:03, 4 October 2012 (UTC)