also für einen zu löschenden Eintrag:
dabei muß man aber wissen wie das Array aufgebau ist und wie es mit Zeigern und Co. darin aussieht.
Delphi-Quellcode:
// die zu überschreibenden Elemente finalisieren
Texte[0] := ''; // oder halt Finalize(Texte[0]);
// Verschiebung durchführen
Move(Texte[1], Texte[0], (Length(Texte) - 1) * SizeOf(Texte[0]));
// freiwerdende Elemente mit 0 überschreiben
Pointer(Texte[Length(Texte) - 1]) := nil;
// Array verkürzen
SetLength(Texte, Length(Texte) - 1);
Delphi-Quellcode:
für ein einfaches IntegerArray würde z.B. schon das reichen:
// Verschiebung durchführen
Move(Texte[1], Texte[0], (Length(Texte) - 1) * SizeOf(Texte[0]));
// Array verkürzen
SetLength(Texte, Length(Texte) - 1);
im Prinziep geht es eigentlich so:
Delphi-Quellcode:
// Verschiebung durchführen
for i := 1 to High(Texte) do
Texte[i - 1] := Texte[i];
// Array verkürzen
SetLength(Texte, Length(Texte) - 1);