AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Asymmetrisches const array

Ein Thema von Sinderion · begonnen am 30. Dez 2011 · letzter Beitrag vom 31. Dez 2011
Antwort Antwort
Sinderion

Registriert seit: 23. Nov 2007
Ort: Oberösterreich
19 Beiträge
 
Delphi XE7 Architect
 
#1

Asymmetrisches const array

  Alt 30. Dez 2011, 23:27
Delphi-Version: 2009
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);
Daniel
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#2

AW: Asymmetrisches const array

  Alt 30. Dez 2011, 23:48
Zitat:
wie(ob?) man ...
garnicht


Über ein statisches Default-Array-Record-Property könnte man sowas quasi "simulieren".
$2B or not $2B

Geändert von himitsu (30. Dez 2011 um 23:52 Uhr)
  Mit Zitat antworten Zitat
Sinderion

Registriert seit: 23. Nov 2007
Ort: Oberösterreich
19 Beiträge
 
Delphi XE7 Architect
 
#3

AW: Asymmetrisches const array

  Alt 30. Dez 2011, 23:52
Ok, hatte ich fast befürchtet.
Daniel
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#4

AW: Asymmetrisches const array

  Alt 31. Dez 2011, 09:18
Gehen wir das Problem mal von der anderen Seite an... was willst Du denn erreichen. Evtl. gibt es ja einen anderen Ansatz.

......
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Sinderion

Registriert seit: 23. Nov 2007
Ort: Oberösterreich
19 Beiträge
 
Delphi XE7 Architect
 
#5

AW: Asymmetrisches const array

  Alt 31. Dez 2011, 16:51
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.
Daniel
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.475 Beiträge
 
Delphi 12 Athens
 
#6

AW: Asymmetrisches const array

  Alt 31. Dez 2011, 17:01
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;
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Sinderion

Registriert seit: 23. Nov 2007
Ort: Oberösterreich
19 Beiträge
 
Delphi XE7 Architect
 
#7

AW: Asymmetrisches const array

  Alt 31. Dez 2011, 17:09
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.
Daniel
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:49 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