If you check your class you will find out that TMyImage actually isn't handled as a fully TImage extend.
Add a function create for example that returns :TMyImage
On a correct extend, the compiler would already throw an error that function declaration differs (as TImage.Create returns :TImage) but it does not in that case.
Add a function create for example that returns :TMyImage
On a correct extend, the compiler would already throw an error that function declaration differs (as TImage.Create returns :TImage) but it does not in that case.