...delete one item from a dynamic array?

Author: Petr H.

Category: Misc

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 : Lösche das 2. Element vom array a

procedure TForm1.Button2Click(Sender: TObject);
var
  
a: TArrayString;
begin
  
DeleteArrayIndex(a, 2);
end;

 

printed from
www.swissdelphicenter.ch
developers knowledge base