Как удалить одно значение из динамического массива
Автор: http://www.swissdelphicenter.ch
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;
|