Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Asymmetrisches const array (https://www.delphipraxis.net/165442-asymmetrisches-const-array.html)

Sinderion 30. Dez 2011 22:27

Delphi-Version: 2009

Asymmetrisches const array
 
Hallo liebe DP-Members!

Zum Ende des Jahres hin stellt sich mir die Frage, wie(ob?) man ein asymmetrisches Array als Konstante definieren kann (oder zumindest einen Typ so deklarieren).
Das Array sollte dann so aussehen: (nur eben nicht erst zur Laufzeit)

Delphi-Quellcode:
// (0) XXXX
// (1) XXX
SetLength(A, 2);
SetLength(A[0], 4);
SetLength(A[1], 3);

himitsu 30. Dez 2011 22:48

AW: Asymmetrisches const array
 
Zitat:

wie(ob?) man ...
garnicht


Über ein statisches Default-Array-Record-Property könnte man sowas quasi "simulieren".

Sinderion 30. Dez 2011 22:52

AW: Asymmetrisches const array
 
Ok, hatte ich fast befürchtet.

sakura 31. Dez 2011 08:18

AW: Asymmetrisches const array
 
Gehen wir das Problem mal von der anderen Seite an... was willst Du denn erreichen. Evtl. gibt es ja einen anderen Ansatz.

...:cat:...

Sinderion 31. Dez 2011 15:51

AW: Asymmetrisches const array
 
Eben einige Konstanten speichern, da das ganze nicht so ganz ins FormCreate passt. Und da gibts, je nach dem was im ersten Element drinnen steht, unterschiedlich viele Elemente an der zweiten Position.

Ich werde mir mal das mit dem Initalization-Teil einer Unit ansehen, da passt es (strukturmäßig) noch am ehesten hin.

Uwe Raabe 31. Dez 2011 16:01

AW: Asymmetrisches const array
 
Als Konstante geht das schon deswegen nicht, da eiin dynamisches Array eben keine Konstante ist. Aber unter bestimmten Bedingungen kann man es ähnlich einer Konstanten erzeugen:

Delphi-Quellcode:
type
  TSubArray = array of Integer;
  TMyArray = array of TSubArray;
var
  arr: TMyArray;
begin
  arr := TMyArray.Create(
    TSubArray.Create(1, 2, 3, 4),
    TSubArray.Create(5, 6, 7));
end;

Sinderion 31. Dez 2011 16:09

AW: Asymmetrisches const array
 
Es soll ja nicht in dem Sinn dynamisch sein, als dass sich die Größe ändern sollte. Die soll schon für alle Elemente und Unterelemente konstant sein.

Diese Art ein Array zu befüllen kannte ich bisher nicht, sieht aber um einiges eleganter aus.


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:21 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz