do not forget to add to each new create()
inherited create(); // should be the 1st line of your create()
... work with new parameters after the inherited call ...
this calls the the ancestors and eventlly the base class's create which will allocate the base class memory.
Then do the same "inherited" call as the last line in your destroy() as good practice. note: you can leave out the ..create and ..destroy keywords that follow "inherited" if you wish.
His base class has an abstract create. So, no, this can't be called.
And it will work without.
The actual mem allocation is done outside the creator. (its in "NewInstance")
The create is for
- triggering NewInstance (magically enforced, no inherited needed)
- initialization.
The 2nd only needs inherited if the inherited create does something (an abstract doesn't do something).
One would normally call inherited, even if it was the empty on in TObject, just because something may later been added to other base classes. But then "abstract" says, nothing will be added.