TImage Canvas で破線を描いていますが、破線のサイズが描画領域に対して大きすぎることがわかりました。キャンバスに描かれた線の破線のサイズを変更する方法はありますか?
これは、破線を描くことができるようにするために私がしていることです。
Canvas.Pen.Style := psDash;
Canvas.Polyline(myPoints);
そして、ダッシュのサイズ/長さを変更できる Pen プロパティが見つかりませんでした。
ありがとう
http://docwiki.embarcadero.com/VCL/e/index.php/Graphics.TPenStyleによると、psUserStyle を使用できます
ExtCreatePen のドキュメントはhttp://msdn.microsoft.com/en-us/library/dd162705(VS.85).aspxにあります。
ExtCreatePen を 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;
わかりませんが、Polyline() の実装はどれですか? コントロール+クリックすると、どのコードが表示されますか? プロパティに公開された変数を使用している可能性がありますか? もしそうなら、あなたはそれを設定することができます。