What I noticed is that when a Chart is put on a form, logical and current extents return nonsense if invoked in the procedure FormCreate procedure.
This reminds of what I forgot to write yesterday: As I saw recently it may help to call Chart.Prepare before manipulating extents. As I wrote above the extents of data ranges are calculated during painting; Prepare does this immediately.