Lass es mich so erklären:
erstens ist das ein dynamisches Array welches nichts weiter ist, als eine Kette von zeigern; in deinem Falle auf Records des typs x.
Wer das Delphi Buch geschrieben hat, war blutiger Anfänger
. Seit wann benutzt man globale Variablen für die Index und Größenermittlung von Arrays ? Dazu gibts die Funktion High(). Sei's drum.
Die Funktion DSNEU macht nichs weiter, als
Code:
Inc(pm);
Setlength(personen,pm);
erhöht die globale Variable pm um 1 und anschließend auch das Array.
geht einfacher mit:
Code:
SetLength(personen, high(personen)+1);
Code:
for i:=pm downto index+2 do Personen[i-1]:=Personen[i-2];
hier verschiebt er das gesamte Array vom Ende zum Anfang
was die var index für einen einfluß hab mag ich nicht deuten, das Oracle ist im Urlaub
.
Wenn index = 0 dann krachts zumindest, weil Index out of Range
Wenn ich mir die nächste Funktion anschaue, soll index wohl die aktuelle Position sein. grübel; dann ist der Sinn der Schleife darin,
**keine Ahnung***, weil weiterhin Grütze. Nehmen wir an Index ist 0 und die Arraygröße ist 1 , dann heist die Schleife:
for 0:=1 downto 2 , oje oje.
Code:
var i:word;
for i:=index to pm-1 do personen[i-1]:=personen[i];
dec(pm);
setlength(personen,pm) //dimension verkürzen
end;
hier löscht er einen Eintrag indem er alles ab dem Eintrag um eins nach vorn schiebt und den Letzen löscht, sprich das Array wieder verkleinert.
grez
msch