Noch eine Änderung.
Delphi-Quellcode:
procedure TNegativeArray.SetLen(Len: Integer);
var
oldidx,i : Integer;
begin
if ((Len + FMaxDefault) > Length(Fdata)) then
begin
//alte Länge = 1. neuer Index nach der vergrößerung
oldidx := Length(Fdata);
//Neue Länge (len = 1 entspricht neue größe 7 elemente also -5 bis 1
SetLength(fData, Len + FMaxDefault);
for i := oldidx to Length(Fdata)-1 do
begin
fdata[i] := TSprite.Create;
MaxValue := IIF(i > (FMaxDefault - 1), (i - (FMaxDefault - 1)), 0);
end;
end;
end;
MaxValue muss hier aktualisiert werden.
Das ist deshalb wichtig weil alle Bitmaps > 0 (Icons) vorher gelöscht werden müssen.
Delphi-Quellcode:
if gS.MaxValue > 0 then
begin
for K := 1 to gS.MaxValue do
begin
if gS[K].Bitmap <> 0 then
begin
DeleteObject(gS[K].Bitmap);
gS[K].Bitmap := 0;
end;
end;
end;
gruss