Wzajemna zależność dwóch rekordów

0

Witam.

Dzisiejszy mój problem wygląda tak:

 (TVariableType to enum)

 Type PArray = ^TArray;
      TArray = Record
                dimcount: Integer;
                count   : Integer;
                etype   : TVariableType;
                Values  : Array of TValue;
               End;

 Type PValue = ^TValue;
      TValue = Packed Record
                Case Integer Of
                 0: (VType: TVariableType;
                  Case TVariableType Of
                   vtBool  : (VBool: Boolean);
                   vtInt   : (VInt: Integer);
                   vtFloat : (VFloat: Extended);
                   vtChar  : (VChar: Char);
                   vtString: (VString: PString);           
                   vtArray : (VArray: PArray);
                );
               End;

Problemem jest wzajemna zależność rekordu TArray od TValue.
Od rana na myśl mi nie przychodzi jakby to rozwiązać, oprócz zrobienia z Values wskaźnika, ale to zostawiłem jako ostateczną opcję.


Edit: próbowałem oczywiście dopisywać Type TValue = Record; ale ty chyba tyczy się tylko klas ;(

1

Dziwi mnie że próbujesz dyskutować o tematach zaawansowanych zaś prostych rzeczy nie potrafisz. No chyba że to tymczasowe zaćmienie, z każdym bywa.

      PArray = ^TArray;
      PValue = ^TValue;
      TValue = Packed Record
                Case Integer Of
                 0: (VType: TVariableType;
                  Case TVariableType Of
                   vtBool  : (VBool: Boolean);
                   vtInt   : (VInt: Integer);
                   vtFloat : (VFloat: Extended);
                   vtChar  : (VChar: Char);
                   vtString: (VString: PString);
                   vtArray : (VArray: PArray);
                );
               End;

      TArray = Record
                dimcount: Integer;
                count   : Integer;
                etype   : TVariableType;
                Values  : Array of TValue;
               End;

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0