[BlueLeaf1336]> PROGRAM> Natural Born Junk>
history | TOP |
2002/11/11:作成
2004/02/16:更新
memo | TOP |
楕円を描く関数があるが、塗りつぶしてしまうタイプしかない。
つまり単純に円を描こうとしてもそういう関数が(多分)ない。なので弧を描く関数を使用している。
というわけでもなく
Canvas.Brush.Style := bsClear;
とすればよいということを、BBSで教えてもらいました。ありがとうございました。
code | TOP |
procedure DrawCircle(_Center: TPoint; _Radius: integer; _Canvas: TCanvas); var Left, Top, Bottom, Right: integer; PreStyle: TBrushStyle; begin // 半径から上下左右を決定 Left := _Center.X - _Radius; Top := _Center.Y - _Radius; Right := _Center.X + _Radius; Bottom := _Center.Y + _Radius; // スタイルを保存 PreStyle := _Canvas.Brush.Style; // 塗りつぶしなしに _Canvas.Brush.Style := bsClear; // 描画 _Canvas.Ellipse(Left, Top, Right, Bottom); // 元に戻す _Canvas.Brush.Style := PreStyle; end;
sample | TOP |
procedure TForm1.Button1Click(Sender: TObject); begin DrawCircle(Point(50, 50), 20, Canvas); end;
EOF | TOP |