Как удалить одно значение из динамического массива?
Как удалить одно значение из динамического массива?
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 a
// Beispiel : Losche das 2. Element vom array a
procedure TForm1.Button2Click(Sender: TObject);
var
a: TArrayString;
begin
DeleteArrayIndex(a, 2);
end;
Взято с сайта