![]() |
Arrayvariable
Hallo!
in meinem Programm hätte ich gerne eine arrayvariable verwendet, diese soll aber variable bleiben. hier mein Beispiel: ich definiere die Variable: Feld: array[0..10, 0..12] ich möchte aber anstatt des 10ers oder des 12 eine Variable eingeben. funktioniert aber nicht, da ein Konstantaursdruck benötigt wird. Weis jemand wie man diese Fehlermeldung umgehen kann? |
Re: Arrayvariable
Mehrdimensionale dynamische Arrays:
Delphi-Quellcode:
MyArray : array of array of Foo;
SetLength(MyArray, 10, 12); |
Re: Arrayvariable
Zitat:
Zeig mal bitte etwas Code, von dem was der Compiler nicht wollte, denn ich kann mir da grad einfach nichts unter dieser Beschreibung vorstellen. |
Re: Arrayvariable
Delphi-Quellcode:
Spalten, Zeilen: integer; (globale Variablen
procedure TForm1.FormShow(Sender: TObject); begin Spalten:= 10; Zeilen:= 10; Spielbrettaufbauen(); end; procedure TForm1.Spielbrettaufbauen(); var horizontal,vertikal: integer; Feld: Array[0..Spalten, 0..Zeilen] of Tshape; //hier kommt der Fehler begin for horizontal := 1 to Spalten do begin Abstand_hor:= Abstand_hor + Breite; Abstand_ver:= Basis; for vertikal := 1 to Zeilen do begin Abstand_ver:= Abstand_ver + Hoehe; //das Shape wird formatiert Feld[horizontal, vertikal] := Tshape.create(self); Feld[horizontal, vertikal].Parent:= form1; Feld[horizontal, vertikal].height:= Hoehe; Feld[horizontal, vertikal].width:= Breite; Feld[horizontal, vertikal].top:= Position_top + Abstand_ver; Feld[horizontal, vertikal].left:= Position_left + Abstand_hor; Feld[horizontal, vertikal].OnMouseUp:= Fillshape; end; end; |
Re: Arrayvariable
@daNiii: Kannst du deinem Beitrag bitte einen aussagekräftigeren Titel geben der ansatzweise erahnen lässt worum es in dem Thema geht? Dadurch haben andere mit dem gleichen Problem den Vorteil dieses Thema (mit eventueller Lösung) über die Suche (schneller) zu finden. :)
|
Re: Arrayvariable
Diese statischen Arrays werden zur Compilierungs-Zeit übersetzt und da ist der Wert für die Konstanten noch unbekannt.
Also entweder du nimmst ein dynamisches Array und setzt die Größe um Code (siehe Tryer), oder du machst Konstanten daraus, so wie es der Compilier, für diesem Fall des statischen Arrays, verlangt
Delphi-Quellcode:
const
Spalten = 10; Zeilen = 10; procedure TForm1.FormShow(Sender: TObject); begin Spielbrettaufbauen(); end; |
Re: Arrayvariable
alos Konstanten geht schon mal garnicht..
den der Wert muss anpassbar sein... wie geht das mit dem dynamischen arrays? |
Re: Arrayvariable
Siehe
![]() |
Re: Arrayvariable
Und vorsorglich weise ich schon einmal darauf hin, dass man gerade bei dynamischen Arrays den Index auf <= High(Array) prüfen sollte, bevor man darauf zugreift.
|
Re: Arrayvariable
Och Mönsch! Ich hab mich schon so auf die kommenden Off-By-One Fragen und Diskussionen gefreut! Hatten wir schon verhältnismäßig lange nicht mehr :stupid: :mrgreen:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:28 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