Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
fs : TFileStream;
DataSize : Word;
DataType : Word;
CurEntry : record
Header : record
Tag : array[0..3] Of Char;
EntryType : Word;
Size : Word;
end;
case boolean of
true: (Value : DWORD; Junk: array[0..1023] of Char);
false : (Str : array[0..1023] of Char);
end;
CurInfo : String;
CurJunk : array[0..1023] Of Char;
begin
//...
end;
damit kannst du in einem record mehrere variablen im selben speicher halten -> das ganze dient der übersicht wenn du ein record für 2 sachen verwenden willst und dadurch 2 ( hier 2 durch das boolean -> true/false ) verschieden bezeichnungen brauchst.
beispiel:
Delphi-Quellcode:
TIPSVarType = (vtBoolean, vtInteger, vtFloat, vtString);
TIPSVarTypes = set of TIPSVarType;
PIPSVariable = ^TIPSVariable;
TIPSVariable = record
VarName : PChar;
VarType : TIPSVarType;
VarInfo : PChar;
VarUpdated : TDateTime;
case TIPSVarType of
vtBoolean : (VarBoolean : Boolean);
vtInteger : (VarInteger : Integer);
vtFloat : (VarFloat : Single);
vtString : (VarString : PChar);
end;
hier habe ich für jeden variablentyen einen eigenen namen mit verschiedenen typen (Boolean/Integer..). da das record je immer nur eine variabe annehmen kann muss ich ja nicht alle möglichkeiten im record gleichzeitig aufnehmen sondern nehme per case nur jeweils eins rein was mich an speicher nur soviel kostet wie der größte typ ( der compiler denkt da halt mit... und mir erspart es arbeit bzw arbeitsspeicher )
werd mal bei gelegenheit das topic aus der delphi help suchen.... da gabs was...