Einzelnen Beitrag anzeigen

Fritzew

Registriert seit: 18. Nov 2015
Ort: Kehl
678 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Verstehe das Verhalten der Records nicht.

  Alt 6. Dez 2017, 08:28
Zitat:
Habe ich mir schon fast gedacht, aber warum wird mir im Debugger wenn ich die Variable Auswerte der Wert nicht angezeigt? Also muss ich jeden Short String, wo ich einen Kürzen String reinpacke vorher Fillcharn?
Mach Dir eine Compare Function für die Records, mit CompareMem wirst Du in solchen Fällen immer auf die Nase fallen. Da spielt auch das Align eine Rolle.

Ausgehend von Align 4 (der default denke ich) sieht Dein Record im Speicher so aus:

Delphi-Quellcode:
TSampleRecord = record
    Count : byte;
    hidden : array[0..2] of byte; // Für das Align wird das vom Compiler eingebaut
    KfmKey : TKFMKey; // 17 byte
   hidden : array[0..2] of byte; // Für das Align wird das vom Compiler eingebaut
  end;
Kannst Du einfach mit sizeof(TSampleRecord) nachschauen. Habe es jetzt nicht getestet aber gehe davon aus das der Record 24 Byte gross ist.
Fritz Westermann
  Mit Zitat antworten Zitat