Есть логическое и физическое удаление. В случае с физическим удалением размер массива меняется в зависимости от количества элементов, а вот в случае логического удаления размер массива будет неизменным, но количество элементов может менятся.
Удаление элементов из статического массива можно реализовать таким образом:
Код:
Type
TArray100=array[1..100]of integer;
Var
Arr: TArray100;
ArrSize: Integer; // Переменная отвчающая за количество элементов в массиве.
begin
ArrSize := 100;
for i := 1 to ArrSize do Arr[i] := Random(100); //Заполним массив
ArrSize := 99;
for i := 50 to ArrSize do Arr[i] := Arr[i+1]; //Удаляем 50-й элемент из массива
end;
Т.е. физически массив как был 100 элементов, так и остался. Удаление элемента, это фактически сдвиг всех последующих после удаляемого элемента к началу. Для получения крайней границы массива мы используем переменную ArrSize