Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi array mit Konstanten erstellen ? (https://www.delphipraxis.net/51131-array-mit-konstanten-erstellen.html)

qicki 6. Aug 2005 17:06


array mit Konstanten erstellen ?
 
Delphi-Quellcode:
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 ;
.
.
das geht leider nicht , er meint das x_kood,y_kood keine Konstanten sein

wie erstelle ich nun das array mit variablen indexanfang/ende ?

Oxmyx 6. Aug 2005 17:17

Re: array mit Konstanten erstellen ?
 
Delphi-Quellcode:
var
  A: array of array of Integer;
begin
  SetLength(A, 10, 15);
end;

qicki 6. Aug 2005 17:22

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

Khabarakh 6. Aug 2005 17:26

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.

qicki 6. Aug 2005 17:34

Re: array mit Konstanten erstellen ?
 
hm hab leider noch nicht mit Klassen gearbeitet , kannst du mal kurz deine Lösung zeigen ?

Oxmyx 6. Aug 2005 17:38

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.

malo 6. Aug 2005 18:28

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 ;)

qicki 6. Aug 2005 19:43

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';

idontwantaname 7. Aug 2005 11:35

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:

Khabarakh 7. Aug 2005 11:58

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 06:04 Uhr.
Seite 1 von 2  1 2      

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