A TAction is the perfect way to have code placed in only one place and easily assigned to other components.
Yes, I know that. Just problem is I have no way to know from where the call of the action come from. <snip>
I'm afraid that that's not entirely correct:
<snip> TBasicAction, that there is a public property Actioncomponent (TComponent) for which the help file says: "Return the component that initiates the action."