p.Graphics.Stroke.Kind := gskDot;
p.Graphics.DrawLine(..)
The length of the line have to be even, otherwise the line will be drawn as solid.
Example:
p.Graphics.Stroke.Kind := gskDot;
//drawn as gskDot
p.Graphics.DrawLine(PointF(rh.Left + 180, tr.Bottom + 30), PointF(rh.Left + 250, tr.Bottom + 30));
//drawn as gskSolid
p.Graphics.DrawLine(PointF(rh.Left + 180, tr.Bottom + 30), PointF(rh.Left + 251, tr.Bottom + 30));