![]() |
array mit Konstanten erstellen ?
Delphi-Quellcode:
das geht leider nicht , er meint das x_kood,y_kood keine Konstanten sein
procedure Umgebung(const x_kood:integer = 0;const y_kood: integer = 0);
var bild : array[x_kood..(x_kood + 20), y_kood..(y_kood+20)] of string ; . . wie erstelle ich nun das array mit variablen indexanfang/ende ? |
Re: array mit Konstanten erstellen ?
Delphi-Quellcode:
var
A: array of array of Integer; begin SetLength(A, 10, 15); end; |
Re: array mit Konstanten erstellen ?
naja dynamische arrays beginnen leider aber immer mit dem 0 index , ich will aber z.b. mit dem index 100 beginnen oder -100
|
Re: array mit Konstanten erstellen ?
Kurz und knapp: Geht nicht, jedenfalls nicht mit Arrays :P . Wozu brauchst du denn die Indizierungen? Du könntest eine eigene Klasse mit Liste schreiben, die kannst du dann fast genau gleich nutzen.
|
Re: array mit Konstanten erstellen ?
hm hab leider noch nicht mit Klassen gearbeitet , kannst du mal kurz deine Lösung zeigen ?
|
Re: array mit Konstanten erstellen ?
Es ist Unsinn, dass ein dyn. Array mit einem anderen Index als 0 beginnen sollte. Das ergibt sich doch aus der Beschaffenheit eines Arrays. Die Arrayvariable ist nichts anderes als ein Zeiger, der auf den Beginn des Speicherbereichs zeigt, in dem die Daten des Arrays stehen. Über den fortlaufenden Index wird dann das jeweilige Element angesprungen. Das geht natürlich nur, wenn der Index auch bei 0 beginnt. Desweiteren gibt es auch keinen zwingenden programmlogischen Grund, ein Array anders als von 0 beginnend zu indizieren.
|
Re: array mit Konstanten erstellen ?
Wir können hier auch wieder das Thema der beschreibbaren Konstanten aufführen... [oh]{$J}[/oh]. Ist ein kleines Thema für sich, und auch eine Diskussion für sich, ob man es nun machen sollte, oder nicht. Aber es wäre eine Möglichkeit ;)
|
Re: array mit Konstanten erstellen ?
hat sich erledigt
hab mir Oxmyx beitrag zu herzen genommen und nun ein Array mit festen grenzen genommen und die die zu verändernden indexwerte dem bereich angepasst
Delphi-Quellcode:
bild[xwert-x_kood][ywert-y_kood]:='Wert';
|
Re: array mit Konstanten erstellen ?
Liste der Anhänge anzeigen (Anzahl: 1)
obwohl du es schon erledigt hast, poste ich trotzdem eine lösung :P
da ich ein ähnliches problem wie du auch mal gehabt habe, habe ich mir eine klitzekleine klasse geschrieben, die sowas kann, was du möchtest schau sie dir mal an, ein beispiel-programm ist anbei [edit] die exception ist gewollt weil ich über den index hinaus gehe in der schleife hab grad erst jetzt bemerkt, dass ich diese "fehlerhafte version" angehängt habe :oops: |
Re: array mit Konstanten erstellen ?
@idontwantaname: Probier mal das aus :zwinker: :
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var MyArr: TArray; Loop: Integer; begin MyArr := TArray.Create(-10, 2); //! for Loop := MyArr.Min to MyArr.Max do MyArr.Items[Loop] := Loop; ShowMessage('Gefüllt!'); for Loop := MyArr.Min to MyArr.Max do ShowMessage(MyArr.Items[Loop]); MyArr.Free; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:54 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