Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   2D dynamisches Array mit negativen Wertebereich (https://www.delphipraxis.net/192866-2d-dynamisches-array-mit-negativen-wertebereich.html)

Atlunch 28. Mai 2017 15:02

2D dynamisches Array mit negativen Wertebereich
 
Hallo zusammen,

aktuell habe ich folgendes Array deklariert.

Delphi-Quellcode:
type
    TArr = Array[0..179,-210..210] of Integer;

nun möchte ich aber den Wertebereich -210 bis 210 variable bestimmen.

Wie setze ich das am besten um?

Viele Grüße
Atlunch

DeddyH 28. Mai 2017 15:07

AW: 2D dynamisches Array mit negativen Wertebereich
 
Delphi-Quellcode:
type
  TDynIntArray = array of integer;
  TArr = Array[0..179] of TDynIntArray;
Oder habe ich Dich falsch verstanden?

himitsu 28. Mai 2017 19:58

AW: 2D dynamisches Array mit negativen Wertebereich
 
http://www.delphipraxis.net/192551-a...tiv-werte.html
:zwinker:


Dynamische Arrays beginnen immer bei 0. (in Pascal/Delphi)
Du mußt also deinen "freien" Index auf einen 0-basierenden Index umrechnen. (einen Offset addieren, was man auch in einer Klasse oder Prozedur "verstecken" kann)

Alternativ variante Arrays verwenden, aber der Offset ist bestimmt einfacher.
Delphi-Referenz durchsuchenSystem.Variants.VarArrayCreate



Delphi-Quellcode:
TArr = Array[0..179,-210..210] of Integer;

ist die Kurzfassung von
Delphi-Quellcode:
TArr = Array[0..179] of Array[-210..210] of Integer;

das kann man auch getrennt deklarieren
Delphi-Quellcode:
TArr2 = Array[-210..210] of Integer;
TArr = Array[0..179] of TArr2;
und letztendlich kann man hier auch einige Ebenen dynamisch statt statisch geklarieren, siehe DeddyH.
Delphi-Quellcode:
TArr = Array[0..179] of Array of Integer;
// oder
TArr = Array of Array[-210..210] of Integer;

himitsu 28. Mai 2017 20:02

AW: 2D dynamisches Array mit negativen Wertebereich
 
[doppelpost]


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

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