смешаешь, удаляешь
/где-то в начале кода...
type arr:array of int;
var mas:arr;
...
begin
mas.SetLength(9)
...
/А тут очищаем
Procedure RemoveElement(dim:arr, pos:int)
var i:byte;
For i:=pos to dim.Length()-1/Точно не помню как получить последний
dim[pos]=dim[pos+1]
Next/Лол, я забыл как закрывать в паскале цикл For
dim.SetLength(dim.Length()-1)
End Procedure/фак, надо повторить язык
Возможно что работать не будет, не исключен вариант что при SetLength массив очищается, но это не проблема. На время SetLength можно перенести данные в другой массив.
Ты кодер - ты и мучайся)