Есть код
| Код | png:=TPNGObject.Create; img:=TBitmap.Create; try png.LoadFromFile('img\status.png'); img.Assign(png); for I := 0 to 6 do begin img.Assign(png); crop(img,i); //Здесь я отрезаю часть картинки StatusList.AddObject( IntToStr(I) ,img); //Сую его в StringList; end; finally png.Free; img.Free; //Если тут заменить, Free на FreeImage, то потом эксепшена нет, но во всех записях одня и та же картинка. end;
|
После этого при вызове:
| Код | img:=TBitmap(StatusList.Objects[I]); //Эксепшн.
|
Как я понимаю, когда я засовываю объект в StringList через переменную. Она продолжает держать ссылку на объект, так что если потом, я скажу переменной Free, то и объект в Листе тоже изчезнет. Так вот, просвятите меня, проведите ликбез, как это сделать по науке?. |