![]() |
Record-Konstanten in Record-Definition verwenden
Ist es eigentlich möglich eine Record-Konstante aus der Record-Definition zu erstellen
Delphi-Quellcode:
oder innerhalb der Record-Definition zu verwenden?
Type
TMyRec= packed Record Data: Array[0..15] of LongWord; Const DataSize = Length(Data); // Data sei nicht definiert ... End;
Delphi-Quellcode:
ich wollte der Eindeutigkeit halber für mehrere Bereiche eines Record's die selbe Konstannte verwenden.
Type
TMyRec = packed Record Const DataSize = 16; Var Data: Array[0..DataSize-1] of LongWord; // DataSize sei nicht definiert ... End; Spezielles Problem ist Follgendes: ich wollte keine globale Konstannte erstellen und auch nicht ständig eine Lokale definieren dennoch brauch in für ASM eine Konstante, denn sowas geht ja nicht
Delphi-Quellcode:
ASM
MOV ECX, Length(Data) End; |
Re: Record-Konstanten in Record-Definition verwenden
Doch, das geht. 8)
Delphi-Quellcode:
asm
MOV ECX, TYPE Data end; |
Re: Record-Konstanten in Record-Definition verwenden
immer schön was Neues kennenzulernen :shock:
sowas geht aber nicht?
Delphi-Quellcode:
(hatte ausversehn oben SizeOf statt Length geschrieben)
MOV ECX, Length(Data)
Delphi-Quellcode:
dem zöge ich dann 'ne lokale Konstante vor :oops:
function abc;
asm MOV ECX, TYPE &Data SHR ECX, 2 end;
Delphi-Quellcode:
function abc;
const DataSize = Length(Data) asm MOV ECX, &DataSize end; nja, zumindestens ergibt das eine Lösung für Problemchen an anderer Stelle, :thumb: aber es würde mich dennoch interessieren ob soetwas möglich wäre. |
Re: Record-Konstanten in Record-Definition verwenden
Etwas unelegant:
Delphi-Quellcode:
asm
mov ecx, type Data / type Data[0] end; |
Re: Record-Konstanten in Record-Definition verwenden
gut, es ist 'ne Lösung, aber wirklich nicht grad "übersichtlich/selbsterklärend" :cry:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:27 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