Mega Code Archive

 
Categories / Delphi / Algorithm Math
 

How to delete one item from a dynamic array

Title: How to delete one item from a dynamic array type TArrayString = array of string; procedure DeleteArrayIndex(var X: TArrayString; Index: Integer); begin if Index High(X) then Exit; if Index Low(X) then Exit; if Index = High(X) then begin SetLength(X, Length(X) - 1); Exit; end; Finalize(X[Index]); System.Move(X[Index +1], X[Index], (Length(X) - Index -1) * SizeOf(string) + 1); SetLength(X, Length(X) - 1); end; // Example : Delete the second item from array procedure TForm1.Button2Click(Sender: TObject); var a: TArrayString; begin DeleteArrayIndex(a, 2); end;