1. Du hast das case in Records falsch verstanden. Die 3 Variablen sind immer vorhanden und müssen unterschiedlich benannt sein damit man auch darauf zugreifen kann.
Die Variablen überlappen nur im Speicher weswegen man sich entscheiden sollte welche davon man nutzt für die jeweilige Instanz des records. Bzw. man muss selbst darauf aufpassen dass man nur die Variable benutzt die zu dem ausgewählten idType passt. Da kann der Compiler nichts machen, da er ja nicht weiß welches record zur Laufzeit welchen Typ hat.
2. Type-Deklarationen können keinen Konstanten-Default Wert haben - das geht nur bei (globalen) Variablen und Konstanten:
Delphi-Quellcode:
type
TArrayTest = array [0..2] of TIdentType;
var
test: TArrayTest = ((idName: 'Test'; idType: itString; idDefaultStr: 'Hallo'),
(idName: 'Test2'; idType: itInteger; idDefaultInt: 1234),
(idName: 'Test3'; idType: itBoolean; idDefaultBool: false));
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."