Hallo Sebastian,
ich vermute es liegt am ehesten an den "Move"-Befehlen. Ich werde mal gucken, in wie fern ich da was rausbekomme.
Okay, ich habe alle "Move"-Befehle manuell implementiert (in TMainList!) und es funktioniert. Wobei nur das "Move" in "MoveContent" aufgerufen wird:
Delphi-Quellcode:
procedure TMainList.MoveContent(const AFrom, ATo, ASize: Integer);
var
i, ValueCount: Integer;
ValueBuffer : TVarRecArray;
begin
// Problemstelle !
//Move(FValues[AFrom], FValues[ATo], ASize);
//exit;
ValueCount := ASize div SizeOf(TVarRec);
SetLength(ValueBuffer, ValueCount);
for i := 0 to ValueCount - 1 do
ValueBuffer[i] := FValues[AFrom + i];
for i := 0 to ValueCount - 1 do
FValues[ATo + i] := ValueBuffer[i];
end;
So funktioniert es. Wenn ich aber die Kommentarezeichen entferne, bekomme ich Fehler.
Ich verwende "Move" auch im Add(TVarRecArray) sowie im Assign. Aber wie gesagt, das wird nicht aufgerufen in dieser Konstellation. Ich glaube ich werde das in eine extra "TXList"-Stressunit umbauen.
Aber ist den hier nicht "Move" möglich?
MfG
xZise