Yeah, except I don't really like putting all those typecasts in there, especially when there is a whole array of TDIAction things.

(Btw, you do know that
[pascal]const DefinedConstant : Cardinal = 2123;[/pascal]
is not the same as
[pascal]const DefinedConstant = 2123;[/pascal]
?

The first one is a typed constant, which is kept in memory, and the second is just a constant value that the compiler will replace references to with its value, which is why you cannot take the addess of the second type.)