[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 |