Einzelnen Beitrag anzeigen

DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#4

AW: Item aus einem dynamischen String-Array löschen

  Alt 26. Sep 2018, 09:18
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 ...)

Geändert von DieDolly (26. Sep 2018 um 10:09 Uhr)
  Mit Zitat antworten Zitat