Shape 控 件

Shape 控 件 - 图1Shape 控 件 - 图2Shape 控 件 - 图3创 建 一 个 可 以 显 示 框 圆 或 椭 圆 的 形 状 控 件

语 法

Shape

说 明

Shape 控 件 - 图4Shape 控 件 - 图5Shape 控 件 - 图6Shape 控 件 - 图7Shape 控 件 - 图8Shape 控 件 - 图9Shape 控 件 - 图10Shape 控 件 - 图11形状控件是可以显示矩形 圆或椭圆的图形控件 这些图形不能直接修改 但是 因为形状控件包括很多其他控件具有的属性 事件和方法 所以形状控件能响应事件 并且在运行时可动态地修改

Shape 控 件 - 图12Shape 控 件 - 图13Shape 控 件 - 图14Shape 控 件 - 图15Shape 控 件 - 图16Shape 控 件 - 图17Curvature 属性决定显示什么样的图形 它的变化范围是 0 到 99 0 表示无曲率 用来创建矩形 99 表示最大曲率 创建圆和椭圆

Shape 控 件 - 图18Shape 控 件 - 图19Shape 控 件 - 图20Shape 控 件 - 图21Shape 控 件 - 图22Shape 控 件 - 图23有关创建图形的其它信息 请参阅 Microsoft Visual FoxPro 6.0 中文版程序员指南的第 十 章 使用控件

属 性

Application

BackColor

BackStyle

BaseClass

BorderColor

BorderStyle

BorderWidth

Class

ClassLibrary

ColorScheme

ColorSource

Comment

Curvature

DragIcon

DragMode

DrawMode

Enabled

FillColor

FillStyle

Height

HelpContextID

Left

M ouseIcon

M ousePointer

Name

OLEDragMode

OLEDragPicture

OLEDropEffects

OLEDropHasData

OLEDropMode

Parent

ParentClass

SpecialEffect

Tag

ToolTipText

Top

V isible

WhatsThisHelpID

W idth

事 件

Click

DblClick

Destroy

DragDrop

DragOver

Error

Init

M iddleClick

M ouseDown

M ouse Move

M ouseUp

M ouseWheel

续 表OLECompleteDrag OLEDragDrop OLEDragOver OLEGiveFeedBack OLESetData OLEStartDrag RightClick UIEnable

方 法

AddProperty CloneObject Drag

M ove OLEDrag ReadExpression ReadMethod ResetToDefault SaveAsClass ShowWhatsThis W riteExpression W riteMethod ZOrder

示 例

Shape 控 件 - 图24Shape 控 件 - 图25下面的示例演示了如何用形状控件在表单上显示圆 椭圆和长方形

Shape 控 件 - 图26Shape 控 件 - 图27Shape 控 件 - 图28Shape 控 件 - 图29Shape 控 件 - 图30Shape 控 件 - 图31Shape 控 件 - 图32创建一个表单 并在表单上放置一套选项按钮和一个命令按钮 单击一个选项按钮会在表单上显示相应的形状 设置 Visible 属性 为 真 (.T.) 以显示形状 设置 为

Shape 控 件 - 图33Shape 控 件 - 图34Shape 控 件 - 图35Shape 控 件 - 图36Shape 控 件 - 图37假 (.F.) 则在显示另一个形状前隐藏此形状 每个形状的 Height Width 和

Shape 控 件 - 图38Shape 控 件 - 图39Shape 控 件 - 图40Shape 控 件 - 图41Curvature 属性 决定了所创建的形状类型 圆 椭圆或长方形frmMyForm = CREATEobject('Form') && 创建一个表单frmMyForm.Closable = .F. && 取消控件菜单栏

frmMyForm.Addobject('cmdCommand 1','cmdMyCmndBtn') && 增加命令按扭frmMyForm.Addobject('opgOptionGroup1','opgMyOptGrp') && 增加选项组frmMyForm.Addobject('shpCircle1','shpMyCircle') && 增加圆形frmMyForm.Addobject('shpEllipse1','shpMyEllipse') && 增加椭圆形frmMyForm.Addobject('shpSquare','shpMySquare') && 增加 BOX 形

Shape 控 件 - 图42Shape 控 件 - 图43frmMyForm.cmd Command 1.Visible =.T. && 取消 退出 命令

frmMyForm.opgOptionGroup1.Buttons(1).Caption = "\<Circle" frmMyForm.opgOptionGroup1.Buttons(2).Caption = "\<Ellipse" frmMyForm.opgOptionGroup1.Buttons(3).Caption = "\<Square" frmMyForm.opgOptionGroup1.SetAll("Width", 100) && 设置选项组宽度frmMyForm.opgOptionGroup1.Visible = .T. && 使选项组可见frmMyForm.opgOptionGroup1.Click && 显示圆形

frmMyForm.SHOW && 显示表单

READ EVENTS && 启动事件程序

DEFINE CLASS opgMyOptGrp AS OptionGroup && 创建一个选项组

ButtonCount = 3 && 三个选项按扭

Top = 10

Left = 10

Height = 75

Width = 100

PROCEDURE Click

ThisForm.shpCircle1.Visible = .F. && 隐藏圆形ThisForm.shpEllipse1.Visible = .F. && 隐藏椭圆形ThisForm.shpSquare.Visible = .F. && 隐藏方形

DO CASE

CASE ThisForm.opgOptionGroup1.Value = 1 ThisForm.shpCircle1.Visible = .T. && 显示圆形

CASE ThisForm.opgOptionGroup1.Value = 2 ThisForm.shpEllipse1.Visible = .T. && 显示椭圆形

CASE ThisForm.opgOptionGroup1.Value = 3 ThisForm.shpSquare.Visible = .T. && 显示方形

ENDCASE

ENDDEFINE

DEFINE CLASS cmdMyCmndBtn AS Command Button && 创建命令按扭

Caption = '\<Quit' && 给命令按扭增加说明Cancel = .T. && 默认取消命令按扭 (Esc 键 ) Left = 125 && 命令按扭列

Top = 210 && 命令按扭行

Height = 25 && 命令按扭高

PROCEDURE Click

Shape 控 件 - 图44CLEAR EVENTS && 终止事件程序 关闭表单

ENDDEFINE

DEFINE CLASS shpMyCircle AS Shape && 创建一个圆

Top = 10

Left = 200

Width = 100

Height = 100

Curvature = 99

BackColor = RGB(255,0,0) && 红色

ENDDEFINE

DEFINE CLASS shpMyEllipse AS Shape && 创建一个椭圆

Top = 35

Left = 200

Width = 100

Height = 50

Curvature = 99

BackColor = RGB(0,128,0) && 绿色

ENDDEFINE

DEFINE CLASS shpMySquare AS Shape && 创建一个方形

Top = 10

Left = 200

Width = 100

Height = 100

Curvature = 0

BackColor = RGB(0,0,255) && 蓝色

ENDDEFINE

请 参 阅

CREATE CLASS , CREATE FORM , DEFINE CLASS