Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Array definieren?? (https://www.delphipraxis.net/153522-array-definieren.html)

TitanNano 6. Aug 2010 11:05

Array definieren??
 
Hi,
ich mochte ein Array schon bei seiner Definition verschiedene Werte zuweisen, das soll ungefähr so aussehen:

Delphi-Quellcode:
Days : Array [0..4] of String = ('name','Mo','Di','Mi','Do');

Kann mir jemand sagen wie das geht??

mleyen 6. Aug 2010 11:09

AW: Array definieren??
 
Das geht nur bei globalen Variablen:
Delphi-Quellcode:
var
  Days : Array [0..4] of String = ('name','Mo','Di','Mi','Do');
Als Konstante gehts überall:
Delphi-Quellcode:
const
  Days : Array [0..4] of String = ('name','Mo','Di','Mi','Do');
E:
Achja, als Variable gehts doch mit einem kleinen 'hack':
Delphi-Quellcode:
const
  {$J+}
  Days : Array [0..4] of String = ('name','Mo','Di','Mi','Do');
  {$J-}

mkinzler 6. Aug 2010 11:09

AW: Array definieren??
 
In neueren Delphiversionen geht das genau so, wie du es geschrieben hast ( im Abschnitt const)

TitanNano 6. Aug 2010 11:12

AW: Array definieren??
 
also ich habe Delphi 2005 personal.

wo genau füge ich den Const abschnitt ein??

mkinzler 6. Aug 2010 11:14

AW: Array definieren??
 
Normalerweise überhalb von type ist aber eigentlich egal, Hauptsache nach dem Uses

himitsu 6. Aug 2010 11:19

AW: Array definieren??
 
normalerweise zwischen Uses...; und Implementation,

Das als Variable geht eigentlich überall, hauptsache es ist global und nicht local, also nicht procedure/funktion...; und begin.
(nur Schade, daß es immernoch nicht für dynamische Arrays nutzbar ist)

Stevie 6. Aug 2010 12:09

AW: Array definieren??
 
Zitat:

Zitat von himitsu (Beitrag 1039987)
(nur Schade, daß es immernoch nicht für dynamische Arrays nutzbar ist)

Über nen kleinen Umweg schon (ja, ich weiß, ist nicht das selbe wie
Delphi-Quellcode:
var variable: typ = wert;
):
Delphi-Quellcode:
uses
  Generics.Collections;

var
  MyIntArray: TArray<Integer>;

...

initialization
  MyIntArray := TArray<Integer>.Create(1, 2, 3, 4, 5);
In Delphi 2010 wohlgemerkt. Funktioniert auch für nicht generische Arrays.
Man muss halt nur einen Typ definieren (z.B.
Delphi-Quellcode:
type TFooArray = array of TFoo;
) um mit dem Create zu arbeiten. Das wandelt der Compiler bloß in ein SetLength und Befüllen der einzelnen Elemente um. Auch für mehrdimensionale Arrays.


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