Been playing a bit with TWICImage in Delphi 2010 for a scaling thing and noticed there was an access violation when using it the “regular” way: create – use – free, create again – use – free
Googling didn’t explain it so I took a peak at the code and noticed it was using a singleton for a private member which would be destroyed once the reference count reached 0.
There is one valid workaround for it (well, more, but I’ll present one):
– define a global variable of type TWICImage.
– in the initialization section of the unit, create a TWICImage instance and assign it to this:
– in finalization, destroy it
implementation
var dummy : TWICImage = nil;
initialization
dummy := TWICImage.create;
finalization
dummy.free;
end.
No more AV since the refcount will always be 0 until the app closes.
Thank you for the code. I was desperately looking for a solution and this worked perfectly.