Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Zwei dimensionales statisches Array initialisieren (https://www.delphipraxis.net/131245-zwei-dimensionales-statisches-array-initialisieren.html)

Luckie 21. Mär 2009 00:34


Zwei dimensionales statisches Array initialisieren
 
Ich stehe gerade etwas auf dem Schlauch. Ich will ein zwei dimensionales statisches Array initialisieren. Aber ich weiß die Syntax nicht. In der Hilf e und Google findet man das immer nur für eindimensionale.

Delphi-Quellcode:
type
  TSonnenStunden = Array [0..5, 0..5] of Integer;

var
  SonnenStundenListe: TSonnenStunden = [34246, 34126] [1200, 1300];
Führt zu:
Code:
[Pascal Fehler] SonnenStunden.dpr(12): E1012 Konstantenausdruck verletzt untere Grenzen
[Pascal Fehler] SonnenStunden.dpr(12): E1012 Konstantenausdruck verletzt untere Grenzen
Ich bin etwas ratlos.

Namenloser 21. Mär 2009 00:52

Re: Zwei dimensionales statisches Array initialisieren
 
Soweit ich weiß, geht das so:
Delphi-Quellcode:
type
  TSonnenStunden = Array [0..2, 0..2] of Integer;
var
  SonnenStundenListe: TSonnenStunden = ((1, 2, 3), (4, 5, 6),(7, 8, 9));
Ich hab es eben mal kurz getestet, kompilieren tut es zumindest :)

jaenicke 21. Mär 2009 00:54

Re: Zwei dimensionales statisches Array initialisieren
 
Also als Konstante geht das so, als Variable habe ich es nie probiert, wird aber sicherlich dann genauso sein:
Delphi-Quellcode:
var
  SonnenStundenListe: TSonnenStunden = ((34246, 34126), (1200, 1300));
Nebenbei (falls das mal jemand über die Suche findet z.B.) geht die Initialisierung von Records in Arrays ähnlich:
Delphi-Quellcode:
type
  TTest = record
    a: String;
    b: Integer;
  end;

const
  Test: array[0..1] of TTest = ((a: 'Ein String'; b: 4),
    (a: 'Noch ein String'; b: 10));

Luckie 21. Mär 2009 02:21

Re: Zwei dimensionales statisches Array initialisieren
 
Ah, danke.

TSchnuckenbock 2. Jun 2018 00:03

AW: Re: Zwei dimensionales statisches Array initialisieren
 
Zitat:

Zitat von jaenicke (Beitrag 894374)
Nebenbei (falls das mal jemand über die Suche findet z.B.) geht die Initialisierung von Records in Arrays ähnlich:
Delphi-Quellcode:
type
  TTest = record
    a: String;
    b: Integer;
  end;

const
  Test: array[0..1] of TTest = ((a: 'Ein String'; b: 4),
    (a: 'Noch ein String'; b: 10));

Genau so ein Codebeispiel habe ich nun heute, mehr als 9 Jahre nach dem Post gesucht, und es war für mich somit sehr hilfreich.:-D

himitsu 4. Jun 2018 12:09

AW: Re: Zwei dimensionales statisches Array initialisieren
 
Zitat:

Zitat von jaenicke (Beitrag 894374)
const
Test: array[0..1] of TTest = ((a: 'Ein String'; b: 4),
(a: 'Noch ein String'; b: 10));[/code]

Inzwischen sollte das schon eine Weile auch mit dynamischen Arrays funktionieren. (hat auch lange gedauert)


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:13 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