![]() |
Re: Zugriff auf Variante Teile in Record-Typen
Zitat:
Test-Code:
Delphi-Quellcode:
Ergebnis (Delphi 6):
type
TTest = record case Typ: Boolean of {$A-} False: (T1: Integer); True: (T2: Double); {$A+} end; function FieldOffset(const Struct, Field): Cardinal; begin Result := Cardinal(Addr(Field)) - Cardinal(Addr(Struct)); end; procedure TForm1.Button1Click(Sender: TObject); var Test: TTest; begin ShowMessage( 'T1: ' + IntToStr(FieldOffset(Test, Test.T1)) + #13#10 + 'T2: ' + IntToStr(FieldOffset(Test, Test.T2)) ); end;
Code:
Ziel sollte aber sein, dass beide Offsets 8 sind (wie in der C-Referenzstruktur).
T1: 1
T2: 1 Gruß Nico |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:07 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz