Salve a tutti!
Nella guida di Maroc Cantù si parlava di procedure e funzioni, trattando quelle con Parametri Open Array Type-Variant, con come esempio la funzione Format().

Se n'è mostrata l'implementazione e fin qui tutto ok, cioè: ho capito cosa fa e come si chiama la suddetta funzione (se nn mi sbaglio, è come il printf del C). Poi però nn ho capito la spiegazione seguente, con tanto di codice:


Il record TVarRec ha la seguente struttura:

codice:
type
  TVarRec = record
    case Byte of
      vtInteger:    (VInteger: Integer; VType: Byte);
      vtBoolean:    (VBoolean: Boolean);
      vtChar:       (VChar: Char);
      vtExtended:   (VExtended: PExtended);
      vtString:     (VString: PShortString);
      vtPointer:    (VPointer: Pointer);
      vtPChar:      (VPChar: PChar);
      vtObject:     (VObject: TObject);
      vtClass:      (VClass: TClass);
      vtWideChar:   (VWideChar: WideChar);
      vtPWideChar:  (VPWideChar: PWideChar);
      vtAnsiString: (VAnsiString: Pointer);
      vtCurrency:   (VCurrency: PCurrency);
      vtVariant:    (VVariant: PVariant);
      vtInterface:  (VInterface: Pointer);
  end;
Ogni possibile record ha il campo VType, anche se non e' facile vederlo al primo momento visto che e' dichiarato solo una volta, piu' il dato effettivo di dimensione integer (generalmente un riferimento o un puntatore).


Mi potete spiegare come funziona il record TVarRec?
thx