AsuYuHomepage
トップページ サイトの説明 子供の成長記録 JM BAR Delphi リンク集
Home>>プログラミング>>Tips&Tricks>>太さが2以上の破線を描画する
Delphi Tips
Delphi Win32API
ダウンロード

Delphi Tips & Tricks

太さが2以上の破線を描画する

 Del7のTPenでは幅が2以上の破線は描けません。これはTPenにより作成されるのがコスメティックペンで在るゆえの制限です。
 しかしWin2000以降では、ジオメトリックペンを作成することにより幅が2以上のペンや、実線同士の間隔が任意の破線、またはビットマップブラシのペンなどを作成することが出来ます。
var
  LogBrush :TLogBrush;
begin
  LogBrush.lbStyle :=BS_SOLID;      //ソリッドブラシ
  LogBrush.lbColor :=RGB(255,0,0);  //純色の赤
  LogBrush.lbHatch :=0;      
  
  with Canvas do begin
    Pen.Handle :=ExtCreatePen(PS_GEOMETRIC         //ジオメトリックペン
                              or PS_DASHDOT        //一点破線
                              or PS_ENDCAP_SQUARE  //線の隅を四角に
                              or PS_JOIN_ROUND,    //ラウンド結合
                              20,
                              LogBrush,
                              0, nil);

    MoveTo(0,0);
    LineTo(ClientWidth,ClientHeight);
    MoveTo(ClientWidth,0);
    LineTo(0,ClientHeight);
  end;
end;

 詳しくは、サイト内Delphi de Win32API ExtCreatePenを参照してください。
各パラメータの説明もしてあります。