Thema: Delphi (dynamisches) Array?

Einzelnen Beitrag anzeigen

axelf98

Registriert seit: 27. Aug 2003
Ort: Ennepetal
440 Beiträge
 
Delphi 2005 Personal
 
#3

Re: (dynamisches) Array?

  Alt 27. Nov 2003, 14:50
Arrays sind allgemein Reihen von Variablen oder Objekten. Wenn man zB. für sein Programm 50 Integerwerte im Stil von Wert1, Wert2, Wert3.. braucht, kann man dies gut mit einem Array lösen.

Es gibt 2 Arten von Arrays, einmal statische und dynamische.
Bei statischen Arrays wird von Anfang an die Größe bei der Deklaration festgelegt:
Delphi-Quellcode:
 var
  MeinArray : Array[1..50] of Integer; // Ein Array von 1 bis 50
Ansprechen kann man dann jedes einzelne Element einzeln:
Delphi-Quellcode:
var i : integer;
begin
 MeinArray[1] := 4; // Direkter Zugriff

 for i := 2 to 50 do // Füllen des Arrays
  MeinArray[i] := 50;

Bei dynamischen Arrays kann man die Größe beliebig einstellen:
Delphi-Quellcode:
var
 MeinArray : Array of Real;
 i : integer;
begin
setlength(MeinArray,5);

 for i := to 4 do // Füllen des Arrays
  MeinArray[i] := 50.541;

setlength(MeinArray,60); // Größe ändern

Darüber hinaus gibt es noch mehrdimensionale Arrays:
Delphi-Quellcode:
var
 MeinArray : Array of Array of Real; // 2 Dimensionen (Matrix)
 AndererArray : Array of Array[1..8] of Boolean; // 2 Dimensionen mit festen und variablen Teil
 NochEinAndererArray : Array of Array of Array of Extended; // 3 Dimensionen
 i : integer;
begin
 setlength(MeinArray,12,10); // Erstellt Array mit Größe 12x10
 setlength(AndererArray,6); // Erstellt Array mit Größe 6 x 8
 // ... etc
Arrays können nicht nur Variablen speichern sondern auch Objekte.
Delphi-Quellcode:
var
 Bilder : Array of TImage; // Reihe von Bilder
 i : integer;
begin
 setlength(Bilder,5); // 5 Bilder
 
 for i := 0 to high(Bilder) do //Schleife von 0 bis zur Größe des Arrays - 1
 begin
  Bilder[i] := Timage.Create(Form1); // Objekte initialisieren
  
  with Bilder[i] do // Parameter
  begin
   left := 55 * i;
   top := 30;
   Picture.LoadfromFile('C:\Bild.bmp');
   Parent := Form1; // Sonst sieht man nichts
   show;
  end;

 showmessage('Länge des Arrays ist '+inttostr(length(Bilder))+'!');

 end;

Wenn man zB. einen Array of TForm hat, und wenn man Fenster auch schließen können soll, entsteht eine Lücke im Array. Diese muss per Zählschleife geschlossen werden.

So, das war eine kurze Zusammenfassung von Arrays. Ich hoffe es hilft!
  Mit Zitat antworten Zitat