I've created a chart with custom axes and a simple line that uses a vertical and a horizontal axis out of them. Next I zoomed in by calling the setAutomatic(false) and setMinMax(min, max) method provided by the Axis class. TeeChart zoomed in, but it behaves different in comparison to a normal zoom-in. It does not rescale the axis labels - why? How to rescale axis labels so that they do not overlap?

After debugging I found out, that after a normal zoom-in the method invalidate() is called next. So I also tried to call doInvalidate() on my teechart instance, but that didn't help. setMinorTickCount(arg0) and adjustMinMax() changed also nothing.

First of all note the setMinMax() function already sets automatic to false, so you don't need to call setAutomatic(false) before calling setMinMax().
Also, calling setMinMax() function twice, only the last call makes sense, and I don't see any different behaviour adding or removing the first one.

I've seen your code seems to produce a chart with overlapping labels int he bottom axis. That's strange because if I scroll the chart a bit, or I set a slightly different minimum and maximum, the overlap doesn't appear: