![]() |
Arrays zur Laufzeit erzeugen lassen
Arrays zur Laufzeit erzeugen lassen
Hallo, ich habe ein kleines Problem mit Arrays, weiß allerdings nicht, ob es zu lösen ist. Normalerweise werden Arrays doch fest als Konstante Werte gespeichert
Delphi-Quellcode:
Wie kann ich jedoch Arrays zur Laufzeit erzeugen lassen, indem ich Strings zu einem bereits erstellten Array hinzufüge?
const
BUCHSTABEN: array[0..3] of PWideChar = ('A','B','C','D'); Ein kleines Muster zur Erklärung: FormCreate (oder FormShow, eigene Funktion, etc.) | Füllen der Variable "Var1" | Hinzufügen der Variable "Var1" | Speichern des aktuelles Arrays Ich hoffe ihr versteht was ich meine... Habe mich leider noch nicht soweit mit Arrays beschäftigt.... Kann mir einer helfen? Danke im vorraus, MCXSC |
Re: Arrays zur Laufzeit erzeugen lassen
Du kannst Arrays auch unter var als Variable deklarieren, und dann verändern ... :zwinker:
|
Re: Arrays zur Laufzeit erzeugen lassen
Und wie mache ich das? Sorry, aber habe mich noch nicht soweit mit Arrays beschäftigt.
ganz normal deklarieren? Aber wie ann ich sie dann verändern? |
Re: Arrays zur Laufzeit erzeugen lassen
Man kann anstelle von statischen Arrays auch dynamische Arrays verwenden und deren Länge ändern:
Delphi-Quellcode:
Dynamische Arrays beginnen immer beim Index 0. Den letzen (=größten) Index erhält man mit der Funktion
var myArr: array of string;
... //Länge festlegen und Speicher bereitstellen: SetLength(myArr, 3);//Array mit 3 Feldern ( [0] bis [2]) myArr[0]:= 'Hallo'; myArr[1]:= 'Guten Morgen'; myArr[2]:= 'Auf Wiedersehen'; //mach irgendwas z.B.: ShowMessage( myArr[0]); ... SetLength(myArr, 5);//Array vergrößern //dabei bleiben bereits vorhandene Werte erhalten myArr[3]:= 'Irgendein Text'; myArr[4]:= 'Nichts'; ShowMessage( myArr[High(myArr)] ); ![]() MfG Binärbaum |
Re: Arrays zur Laufzeit erzeugen lassen
Delphi-Quellcode:
var
EinArray: array[0..2] of Integer; begin EinArray[0] := 17; EinArray[1] := 22; EinArray[2] := 31; end; |
Re: Arrays zur Laufzeit erzeugen lassen
Ja, aer da muss ich die anzahl des arrays ja auch wieder festlegen. Kann ich die variable denn dann auch als globale verwenden?
|
Re: Arrays zur Laufzeit erzeugen lassen
Wurde doch schon gesagt. Ein Array, bei dem du die Länge erst zur Laufzeit festlegst (dynamisches Array), machst du so:
Delphi-Quellcode:
Eine Variable kannst du immer in ihrem Gültigkeitsbereich verwenden. Es gibt allerdings nur außerordentlich selten einen Grund, ein globales Array zu verwenden.
var
DynArray: array of Integer; begin SetLength(DynArray, 3); DynArray[0] := 17; DynArray[1] := 22; DynArray[2] := 31; end; |
Re: Arrays zur Laufzeit erzeugen lassen
Zitat:
Also statt
Delphi-Quellcode:
schreibt man
var MeinArray: array [0..19] of string;//statisch
Delphi-Quellcode:
und dann später im Quelltext legt man die Länge mit
var MeinArray: array of string;//dynamisch
Delphi-Quellcode:
fest.
Setlength(MeinArray, 20);
MfG Binärbaum |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:37 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