Arrays - deletar um item de um array dinamico

Top  Previous  Next

// deletar um item de um array dinamico

 

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