Circle 方法用于当 Print 事件发生时,在 Report 对象上画圆、椭圆或圆弧。
expression.Circle(flags, X, Y, radius, color, start, end, aspect)
expression 必需。返回“应用于”列表中的一个对象的表达式。
flags 必需 Integer 型。
X 必需。Single 型值,表示圆、椭圆或圆弧的中心点的 X 坐标。object 参数指定的 Report 对象 Scale 属性(ScaleMode、ScaleLeft、ScaleTop、ScaleHeight 和 ScaleWidth)决定使用的度量单位。
Y 必需。所用的度量单位由Single 型值,表示圆、椭圆或圆弧的中心点的 Y 坐标。object 参数指定的 Report 对象 Scale 属性(ScaleMode, ScaleLeft、ScaleTop、ScaleHeight 和 ScaleWidth)来确定。
radius 必需。Single 型值,表示圆、椭圆或圆弧的半径。所用的度量单位由 object 参数所指定的 Report 对象的 Scale 属性(ScaleMode、ScaleLeft、ScaleTop、ScaleHeight 和 ScaleWidth)来确定。默认情况下,以缇为单位度量距离。
color 必需 Long 型。Long 型值,表示圆轮廓的 RGB(红绿蓝)颜色。如果省略该参数,将使用 ForeColor 属性的值。也可以使用 RGB 函数或 QBColor 函数来指定颜色。
start 必需 Single 型。绘制圆或椭圆的一部分时,start 参数指定弧的起点位置(以弧度为单位)。start 参数的默认值是 0 弧度。取值范围从 –2π 到 2π。
end 必需 Single 型。绘制圆或椭圆的一部分时,end 参数指定弧的终点位置(以弧度为单位)。end 参数的默认值是 2π。取值范围从 –2π 到 2π。
aspect 必需。Single 型值,表示圆的纵横比。默认值是 1.0,表示在任何屏幕上都是一个正圆(而不是椭圆)。
只能在由报表节的事件属性或报表的 OnPage 事件属性所指定的事件过程或宏中使用该属性。
绘制圆或椭圆的部分时,如果 start 参数是负值,Circle 方法将绘制一条到 start 参数指定的位置的弧,并将角度当作正值。如果 end 参数是负值,Circle 方法绘制一条到 end 参数指定的位置的弧,并将角度当作正值。Circle 方法总以逆时针方向(正向)进行绘制。
若要填充一个圆,请设置报表的 FillColor 和 FillStyle 属性。只有封闭的图形才能进行填充。封闭的图形包括圆、椭圆和扇形,扇形的两端都由半径线相连。
绘制扇形时,如要通过绘制到 0 度的弧获得一条水平线段,可为 start 参数指定一个非常小的负值,但不要指定为 0。例如,可以将 start 参数指定为 -.00000001。
在语法当中可以忽略某个参数,但如果该参数后面还有下一个参数,就必须在语法中包括该参数的逗号。如果忽略的是末尾的参数,就不需要在指定的最后一个参数后加上逗号。
画圆、椭圆或圆弧时所用线条的宽度取决于 DrawWidth 属性设置。在背景上画圆的方式则取决于 DrawMode 和 DrawStyle 属性的设置。
在应用 Circle 方法时,CurrentX 和 CurrentY 属性设为由 x 和 y 参数指定的中心点。
下面的示例使用 Circle 方法来画一个圆,然后在这个圆中创建一个扇形,并将它的颜色变为红色。
若要在 Microsoft Access 中试用该示例,请先创建一个新的报表。将“主体”节的 OnPrint 属性设为 [事件过程]。在报表的模块中输入下列代码,然后切换到“打印预览”。
Private Sub Detail_Print(Cancel As Integer, PrintCount As Integer)
Const conPI = 3.14159265359
Dim sngHCtr As Single, sngVCtr As Single
Dim sngRadius As Single
Dim sngStart As Single, sngEnd As Single
sngHCtr = Me.ScaleWidth / 2 ' Horizontal center.
sngVCtr = Me.ScaleHeight / 2 ' Vertical center.
sngRadius = Me.ScaleHeight / 3 ' Circle radius.
' Draw circle.
Me.Circle(sngHCtr, sngVCtr), sngRadius
sngStart = -0.00000001 ' Start of pie slice.
sngEnd = -2 * conPI / 3 ' End of pie slice.
Me.FillColor = RGB(255,0,0) ' Color pie slice red.
Me.FillStyle = 0 ' Fill pie slice.
' Draw pie slice within circle.
Me.Circle(sngHCtr, sngVCtr), sngRadius, , sngStart, sngEnd
End Sub