Ich arbeite mit der Variante Datensatz unten. Die Variableninstanz ist Kro_Combi. SizeOf (Kro_Combi) meldet 7812 Bytes. SizeOf (Kro_Combi.data) meldet 7810 Bytes. Die Summe der SizeOf aller anderen Datenstrukturen, die den "non-directmode" -Fall des Variantensatzes bilden, addiert auch zu 7810 Bytes.Ist mehr Platz für Variantensätze reserviert?
Warum gibt es einen Unterschied von zwei Byte? Ich möchte, dass sich die beiden Varianten genau überlagern.
TKro_Combi = record
case directmode:boolean of
true : (
data : array[0..7809] of byte
);
false : (
Combi_Name : array[0..23] of char; //24
Gap1 : array[0..63] of byte; // 24-87 (64)
Ins_Effect_Group : array[1..12] of TIns_Effect_Params; //74 each, (Ins_Effect_Data=9 bytes) 74*12 = 888
Mast_Effect_Params : array[0..229] of byte; // 976-1205 : 230 bytes
Vect_Aud__Drum_Params : array[0..97] of byte; //1206-1303 : 98 bytes
Karma_Common : array[0..509] of byte; //1304-1813 : 510 bytes
Karma_Module : array[0..3] of TKarma_Module; //1814-2557 : 744 bytes each Total span 1814 - 4789 = 2976 bytes total
Common_Params : array[0..11] of byte; //4790-4801 = 12 bytes
Timbre_Group : array[1..16] of TTimbre_Params; ) // 4802 -4989 = 188 bytes each, 16 Timbres, 4802-7809 = 3008 bytes total for all
end;
Das ist es genau - Danke! Ich brauche die Variable directmode nicht - ich dachte, es wäre ein notwendiger Teil der Deklaration. Ich erinnere mich jetzt an die alte "Packed Record" -Syntax. – tim11g