Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Länge eines Arrays mit Konstante


Flamefire - Do 30.09.10 14:43
Titel: Länge eines Arrays mit Konstante
Ich will die Länge eines Arrays über eine konstante festlegen.
Also sowas:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
const mySize:Integer=99;

type
 TFoo=class(TObject)
 private
    FArray:Array[mySize] of Integer;
 end;


Da meckert Delphi aber, "Konstante oder Typbezeichner erwartet".
Ich könnte aber schwören, das ging mal... Da Delphi Konstanten doch inlined (Nicht wie bei C als Read-Only-Variable)

Wie mache ich das?


iKilledKenny - Do 30.09.10 14:44

Das sollte mit einem dynamischen Array und SetLength gehen.


Gausi - Do 30.09.10 14:46

Du musst schon untere und obere Grenze angeben.

Delphi-Quelltext
1:
 FArray:Array[0..mySize] of Integer;                    

sollte gehen. Oder mit Aufzählungstypen arbeiten.


Flamefire - Do 30.09.10 14:48

Ok, obere und untere Grenze war ein Fehler.
Der 2.:
Geht:

Delphi-Quelltext
1:
const mySize=99;                    

Geht Nicht:

Delphi-Quelltext
1:
const mySize:Integer=99;                    


elundril - Do 30.09.10 14:55

user profile iconFlamefire hat folgendes geschrieben Zum zitierten Posting springen:

Delphi-Quelltext
1:
const mySize:Integer=99;                    


weil das eine typisierte konstante ist. Typisierte Konstanten können zur Laufzeit ihren Wert ändern, demnach sowas wie initialisierte Variablen in Java oder C++.

lg elundril


BenBE - Do 30.09.10 15:39

user profile iconGausi hat folgendes geschrieben Zum zitierten Posting springen:
Du musst schon untere und obere Grenze angeben.

Delphi-Quelltext
1:
 FArray:Array[0..mySize-1of Integer;                    

sollte gehen. Oder mit Aufzählungstypen arbeiten.

UND die Offsets richtig initialisieren...

Ansonsten die Bemerkung bzw. typisierter Konstanten beachten.