Zitat:
Du brauchst eine Procedure im Record, der du den zu löschenden Index übergibst
Das bekomme ich noch hin.
Teil der Lösung
https://www.delphipraxis.net/1380672-post20.html
Eine generische Lösung wäre beispielsweise:
Delphi-Quellcode:
class procedure TArrayHelper.Delete<T>(var A: TArray<T>; Index: Integer);
var
I: Integer;
begin
for I := Index to High(A) - 1 do
begin
A[I] := A[I + 1];
end;
SetLength(A, Length(A) - 1);
end;
class procedure TArrayHelper.Insert<T>(var A: TArray<T>; Index: Integer; const Item: T);
var
I: Integer;
begin
SetLength(A, Length(A) + 1);
for I := High(A) - 1 downto Index do
begin
A[I + 1] := A[I];
end;
A[Index] := Item;
end;
Das steht jetzt in meiner Helper-
Unit. Den Zugriff darauf starte ich aus einer Procedure meines Records.
Das steht bei mir aber nicht in einem class helper for TArray sondern in einem normalen Record in einer anderen
Unit.
Warum? Weil ich dann nicht in jeder
Unit System.Generics.Collections, einbinden muss (TArray ...)