I'd like to suggest the following change:
TChartAxisMarkToTextEvent = procedure (Sender: TObject; var AText: String; AMark: Double) of object;
i.e. the axis firing this event should include a self-reference.
Reason: When dealing with multiple charts and/or multiple axes, it is currently required to create an individual handler for each axis because it is not possible to determine the axis for which to create axis marks for. An example would be an automatic adjustment of unit prefixes (milli, kilo, Mega, etc.) which would imply the same code for each axis, but would require to determine the min/max range of the axis. Currently, this ain't possible.