Ich stehe gerade auf dem Schlauch.
Ich will ein dynamisches Array von Records als Konstante deklarieren. Eigentlich dachte ich, das geht so:
Delphi-Quellcode:
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)
);
Aber der Compiler in Delphi 12 ist anderer Meinung:
Code:
[dcc32 Error] wf_Kamera.pas(84): E2003 Undeclared identifier: 'Name'
Erst, wenn ich explizit eine Array-Länge setze, funktioniert es:
Delphi-Quellcode:
type
TKameraTypArr = array[0..0] of TKameraTypRec;
const
CAM_TYPES: TKameraTypArr = (
(Name: 'GT1920'; Breite: 1920; Hoehe: 1080; PixelSizeX: 0.00000586; PixelSizeY: 0.00000586)
);
Ich dachte, das war eine der Neuerungen in einer der letzten Delphi-Versionen, dass man bei Array-Konstanten keine Länge mehr angeben muss???