![]() |
Delphi-Version: 12 Athens
Konstantes Array of Record deklarieren
Ich stehe gerade auf dem Schlauch.
Ich will ein dynamisches Array von Records als Konstante deklarieren. Eigentlich dachte ich, das geht so:
Delphi-Quellcode:
Aber der Compiler in Delphi 12 ist anderer Meinung:
type
TKameraTypRec = record Name: string; Breite: Integer; Hoehe: Integer; PixelSizeX: Extended; PixelSizeY: Extended; end; TKameraTypArr = array of TKameraTypRec; const CAM_TYPES: TKameraTypArr = ( (Name: 'GT1920'; // <== Compilefehler hier Breite: 1920; Hoehe: 1080; PixelSizeX: 0.00000586; PixelSizeY: 0.00000586) );
Code:
Erst, wenn ich explizit eine Array-Länge setze, funktioniert es:
[dcc32 Error] wf_Kamera.pas(84): E2003 Undeclared identifier: 'Name'
Delphi-Quellcode:
Ich dachte, das war eine der Neuerungen in einer der letzten Delphi-Versionen, dass man bei Array-Konstanten keine Länge mehr angeben muss???
type
TKameraTypArr = array[0..0] of TKameraTypRec; const CAM_TYPES: TKameraTypArr = ( (Name: 'GT1920'; Breite: 1920; Hoehe: 1080; PixelSizeX: 0.00000586; PixelSizeY: 0.00000586) ); :gruebel: |
AW: Konstantes Array of Record deklarieren
So sollte es gehen:
Delphi-Quellcode:
const
CAM_TYPES_0: TKameraTypRec = (Name: 'GT1920'; // <== Compilefehler hier Breite: 1920; Hoehe: 1080; PixelSizeX: 0.00000586; PixelSizeY: 0.00000586 ); const CAM_TYPES: TKameraTypArr = [CAM_TYPES_0]; |
AW: Konstantes Array of Record deklarieren
Typisierte Konstanten sind IMMER "schreibgeschützte" Variaben.
Bei Strings, geht die Referenzzählung auf -1, für Konstanten ... bei Arrays klappt hier die Deklaration meistens nicht, für dynamische Arrays. Wenn das NEUE, was der Vorgänger zeigt, klappt, dann hast du Glück. Man kann hier zwar auch tricksen, aber du willst bestimmt nicht böse Casten und als Dummy die Arraystrucktur selbst zusammenklöppeln? |
AW: Konstantes Array of Record deklarieren
Hmm, Name wird fett dargestellt, ist das evtl. ein reserviertes Wort?
|
AW: Konstantes Array of Record deklarieren
Ja/Nein.
Das Highlighting im Forum arbeitet auch etwas anders, als das in der Delphi-IDE und selbst das Highlighting in der IDE ist nicht immer korrekt. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:05 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