Mach vorher mal ein imgStatus.Picture.Bitmap := nil;
Sollte er das Object nicht vorher freigeben?
Ist hier anders, denn diese Eigenschaft wird komplett durch die
TPicture
Klasse verwaltet.
Bei einer Zuweisung an die Bitmapt Eigenschaft wird nicht die Instanz übergeben, sondern intern wird der Inhalt kopiert. Siehe auch dazu die Doku
TPicture.Bitmap. Steht da allerdings etwas seltsam beschrieben.
Am deutlichsten sieht man es im Quelltext selber
Delphi-Quellcode:
procedure TPicture.SetBitmap(Value: TBitmap);
begin
SetGraphic(Value);
end;
procedure TPicture.SetIcon(Value: TIcon);
begin
SetGraphic(Value);
end;
procedure TPicture.SetMetafile(Value: TMetafile);
begin
SetGraphic(Value);
end;
procedure TPicture.SetGraphic(Value: TGraphic);
var
GraphicClass: TGraphicClass;
begin
if Value <> nil then
GraphicClass := TGraphicClass(Value.ClassType)
else
GraphicClass := nil;
Load(GraphicClass,
procedure (Graphic: TGraphic)
begin
Graphic.Assign(Value); // da wird kopiert
end
);
end;