Hier meine zusammengeschusterte Routine. Die funktioniert perfekt:
Delphi-Quellcode:
Type
TSXArray = array of shortint;
...
...
var
SXArray:TSXArray;
....
....
procedure TForm1.entfernedoppelteWerte(myarray:TSXARRAY);
var
i:integer;
begin
for i :=high(MyArray) downto 0 do
begin
if MyArray[i-1] = MyArray[i] then
loescheArray(SXArray,i);
end;
procedure TForm1.loescheArray(var A:TSXArray;Aindex:Integer);
begin
Move(A[AIndex + 1], A[AIndex], SizeOf(A[0]) * (Length(A) - AIndex - 1));
SetLength(A, Length(A) - 1); // Länge kürzen
end;
Die Routine geht mit oder ohne Sortierung.