views:

19

answers:

1

Hi
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? :(

A: 

You might need class var like stuff, like in newer delphi's. But that is in the development version of FPC only (2.5.1+).

Note that the object type is TP legacy, and hasn't been developed on in this millenium, and I don't expect that to change. If you need more than it offers, I suggest to use classes.

Marco van de Voort