Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
Delphi 10.4 Sydney
|
AW: Arrays mittels Move( ) verkleinern
9. Feb 2013, 15:01
Doch geht schon, auch ohne Speicherlöcher:
Delphi-Quellcode:
procedure RemoveFromMyRecord(Index: Integer);
var
Len: Integer;
begin
Len := High(MyRecord);
if Index <= Len then
begin
Finalize(MyRecord[Index], 1);
if Index < Len then
begin
Move(MyRecord[Index + 1], MyRecord[Index], (Len - Index) * SizeOf(TRecord));
FillChar(MyRecord[Len], SizeOf(TRecord), 0);
end;
SetLength(MyRecord, Len);
end;
end;
procedure RemoveFromMyMatrix(Index: Integer);
var
Len: Integer;
begin
Len := High(MyMatrix);
if Index <= Len then
begin
Finalize(MyMatrix[Index], 1);
if Index < Len then
begin
Move(MyMatrix[Index + 1], MyMatrix[Index], (Len - Index) * SizeOf(string));
FillChar(MyMatrix[Len], SizeOf(string), 0);
end;
SetLength(MyMatrix, Len);
end;
end;
|
|
Zitat
|