Можно воспользоваться TDateTimeIntervalChartSource, который автоматически
подбирает шаг изменения даты в соответствии с текущим масштабом, см. axisdemo.
Смотрел его, даже не учитывая, что проблема эта и там, уж очень для специфических задач штука, для обычных - показалось бредовым вариантом)
OnMarkToText гибче, всё равно писать ручками.
Можно произвольно привязать метки к значениям координаты (в мировой системе)
с помощью свойства Source.
Не совсем понял, поясните пожалуйста. С привязкой к экранным координатам более понятно, типа того, как у меня было. Знаем ширину окна, знаем ширину подписи, подбираем их подходящее число и координаты. И в таком случае, опционально, можно было бы крайние подписи размещать на углах графика, для красивости и понимания, какой диапазон отображается.
а вот что для Marks делать?
На мой взгляд, всё очень просто, разбивать по общепринятым "#13#10" или "\n".
Сложнее с реализацией, осей-то сейчас может быть несколько рядом, и высота их может быть разная.
Title можно так же. Для простоты, можно ограничится одним или двумя разрывами, хотя не суть.
Например, как это сделно в Delphi?
Не могу сказать, последний раз с ним работа года три назад, а с графиками лет 6-7 и то примитивными.
Да, маленький глюк нашел:
http://bugs.freepascal.org/view.php?id=18594.