Moin Mario,
Zitat von
Pseudemys Nelsoni:
irgendwie muss doch entschieden werden welcher variante teil benutzt wird
jein
Das entscheidest Du, indem Du das entsprechende Feld angibst.
Vielleicht wird es mit einem Beispiel deutlicher:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
type
TcsMyVariant1 =
record
case boolean
of
true : (dwDWORD : DWORD);
false : (bByte0 : Byte;
bByte1 : Byte;
bByte2 : Byte;
bByte3 : Byte;)
end;
TcsMyVariant2 =
record
case byte
of
8 : (dwDWORD : DWORD);
37 : (bByte0 : Byte;
bByte1 : Byte;
bByte2 : Byte;
bByte3 : Byte;)
end;
var
mvWork1 : TcsMyVariant1;
mvWork2 : TcsMyVariant2;
begin
mvWork1.dwDWORD := $FFEEDDCC;
ShowMessage(IntToHex(mvWork1.bByte3,2)+#13#10+
IntToHex(mvWork1.bByte2,2)+#13#10+
IntToHex(mvWork1.bByte1,2)+#13#10+
IntToHex(mvWork1.bByte0,2));
mvWork2.bByte0 := $
CC;
mvWork2.bByte1 := $DD;
mvWork2.bByte2 := $EE;
mvWork2.bByte3 := $FF;
ShowMessage(IntToHex(mvWork2.dwDWORD,8));
end;