According to http://docwiki.embarcadero.com/VCL/e/index.php/Graphics.TPenStyle you can use psUserStyle
The documents for ExtCreatePen are at http://msdn.microsoft.com/en-us/library/dd162705(VS.85).aspx
Here is my interpretation of how ExtCreatePen is supposed to be used in conjunction with TPen:
const NumberOfSections = 8; LineLengths: array[0..NumberOfSections-1] of DWORD = (20, 15, 14, 17, 14, 8, 16, 9); var logBrush: TLogBrush; begin logBrush.lbStyle := BS_SOLID; logBrush.lbColor := DIB_RGB_COLORS; logBrush.lbHatch := HS_BDIAGONAL; // ignored Canvas.Pen.Handle := ExtCreatePen(PS_GEOMETRIC or PS_USERSTYLE or PS_ENDCAP_ROUND or PS_JOIN_BEVEL, 4, logBrush, NumberOfSections, @LineLengths[0]); // now Canvas.Pen.Style = psUserStyle Canvas.Polyline([Point(0,0), Point(100,100), Point(200, 100)]); end;
source share