Registriert seit: 18. Feb 2005
286 Beiträge
Delphi 2010 Enterprise
|
AW: Generic record
5. Mär 2012, 15:15
Delphi-Quellcode:
type
{ Generika sind nicht nötig: }
TMeinRecord = record
Value: TBeliebigerFeldtyp;
// mehr beliebige Feldtypen
class operator Implicit( const Value: TMeinRecord): TBytes;
class operator Implicit( const Value: TBytes): TMeinRecord;
end;
class operator TMeinRecord.Implicit( const Value: TMeinRecord): TBytes;
var
Size: NativeInt;
begin
Size := SizeOf(Value);
SetLength(Result, Size);
// if Size > 0 then
Move(Value, Result[0], Size);
end;
class operator TMeinRecord.Implicit( const Value: TBytes): TMeinRecord;
var
Size: NativeInt;
begin
Size := Length(Value) { entspricht Größe in Bytes };
if Size <> SizeOf(Result) then
raise Exception.Create(' Ungültige Feldgröße');
Move(Value[0], Result, Size);
end;
Eine Konsolenanwendung ist beigefügt.
"Es gibt keine schlimmere Lüge als die Wahrheit, die von denen, die sie hören, missverstanden wird."
|