Also Instanzen ist ein Array.. In diesem Fall ein dynamisches... Erstmal was generelles zu Arrays:
Delphi-Quellcode:
var
IntArray: Array[0..5] of Integer;
Das ist ein
statisches Array. Damit hast du gleich 6 (nicht 5!) Integervariablen definiert.
Das ist etwa das gleiche als würdest du
Delphi-Quellcode:
var
IntArray0: Integer;
IntArray1: Integer;
IntArray2: Integer;
IntArray3: Integer;
IntArray4: Integer;
IntArray5: Integer;
Nur eben in einer Zeile
Auf ein
statisches Array kannst du folgendermaßen zugreifen:
Delphi-Quellcode:
// schreiben
IntArray[0] := 5;
IntArray[3] := 10;
// lesen
Caption := IntToStr(IntArray[0]);
Nun jetzt hast du kein IntegerArray sondern ein Array vom Datentyp "Instanz" -> Ein Record.
Zugriff:
Delphi-Quellcode:
var
Instanzen: Array[0..5] of Instanz;
// schreiben
Instanzen[0].wnd := FindFindow(...);
Instanzen[3].wnd := FindFindow(...);
// lesen
Caption := IntToStr(Instanzen[3].wnd);
Verstanden? Nunja der Nachteil bei einem
statischen Array ist das du nur eine vordefinierte Anzahl an Daten in ihm speichern kannst. Lösung:
Dynamische Arrays:
Auf ein
dynamisches Array kannst du nicht einfach so zugreifen!
Du musst dem Array erst eine Größe zuordnen. Das geht mit
SetLength:
Delphi-Quellcode:
var
Instanzen: Array of Instanz;
SetLength(Instanzen,6); // Nun hast du ein Array[0..5] of Instanz
SetLength(Instanzen,3); // Nun hast du ein Array[0..2] of Instanz
// usw...
Wenn du SetLength vergisst, dann bekommst du eine Zugriffsverletzung...
Auf ein dynamisches Array greifst du genaus zu wie auf ein statisches, nur musst du vorher die Länge setzen!
Ich hoffe ich konnte dir das ganze mal etwas verständlich erklären, sodass du jetzt alleine klar kommst... Ansonsten frag einfach nochmal nach
Gruß
Neutral General