I m doing an event manager in Freepascal
Each event is an object type TEvent (=object), each kind of event must derive from this class.
Events are differentiated by an integer identificator, assigned dynamically.
The problem is that i want to retrieve the event id of an instance, and i can t do it well.
- All instances of a class(object) have a unique id => so it should be static field.
- All classes have a diferent id => so it should be virtual.
- Event ids are assignated in run time, and can change => so it can t be a simple method
In sum, I can t put all this together.
I m looking for an elegant solution, i don t want to write a hardcoded table, actualizing it in every constructor... etc, i d prefer something taking advantage of the polymorphism
Can anyone help me with another technical or design solution?
I remark I don t want to use class instead of object construct.(property doesn t work on objects? :(