Einzelnen Beitrag anzeigen

Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#6

Re: Brauche Hilfe zu wnd: HWND

  Alt 25. Feb 2007, 17:10
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 Delphi-Referenz durchsuchenSetLength:

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
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat