I have a very basic chart.
The first date on the bottom-axes label should be "1.1.2017"
But I read "40900", i.e. the Julian format, which was the input.
It should be the TDate number having its origin on Dec 30, 1899. But WriteLn(StrToDate('1.1.2017')) shows 42736 for me, rather than 40900. So maybe you have some typo here, or are doing something else...
in the format property I read, not sure, what this means and how it gets there
(in Chart.BottomAxes.Marks.Format)
%0:.9g
This is a format mask used by the SysUtils.Format() function (using %0:.2f, for example would label the axis with two decimal places; read the docs about what the "0" means here). "dd.mm.yyyy", however, is for the FormatDateTime function which uses a different mask type. So, sorry, this property cannot be used to create a date/time format.
[...] to make the label show the date in "dd.mm.yyyyy"?
Assuming that the date is on the X axis of the chart, add a TDateTimeIntervalChartSource to the form and link it to the Chart.BottomAxis.Marks.Source and set Chart.BottomAxis.Marks.Style to smsLabel. This way the DateTimeIntervalChartSource takes control over labelling and seeks for "nice" labels, even when the chart is zoomed.
Unfortunately the DateTimeIntervalChartSource sometimes produces unwanted results. In this case, it is better when you use the x values of the series directly. I assume that you added the data points to the series as "AddXY(date, y)". Add the date string as label ("AddXY(date, y, DateToStr(date))"), and set Chart.BottomAxis.Marks.Source to LineSeries.ListSource and Chart.BottomAxis.Marks.Style to smsLabel (requires unit TAChartUtils). To prevent overlapping labels, either rotate the axis marks (Chart.BottomAxis.Marks.LabelFont.Orientation = 900) and/or adjust the Increment settings of the axis (Chart.BottomAxis.Increments.MaxLength = 150, Chart.BottomAxis.Increments.MinLength := 80). This will place labels only at the positions of the data points - which will look strange when the data points are irregularly spaced. An alternative is to add a TListChartSource, link it to the axis (as I described for the DateTimeIntervalChartSource) and manually add the label coordinates and texts manually (I posted this recently with a code sample, please search the forum).
Another option would be to provide a handler for the OnGetMarkText event of the axis in which you can format the mark text in any way:
procedure TForm1.Chart1AxisList1GetMarkText(Sender: TObject; var AText: String;
AMark: Double);
begin
AText := DateToStr(AMark);
end;