Delphi - база знаний


Как удалить одно значение из динамического массива?


Как удалить одно значение из динамического массива?





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

Взято с сайта



Содержание раздела