Shape 控 件


创
建 一 个 可 以 显 示 框 圆 或 椭 圆 的 形 状 控 件
语 法
Shape
说 明







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





Curvature
属性决定显示什么样的图形 它的变化范围是 0 到 99 0 表示无曲率
用来创建矩形 99 表示最大曲率 创建圆和椭圆





有关创建图形的其它信息
请参阅 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
示 例

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






创建一个表单
并在表单上放置一套选项按钮和一个命令按钮
单击一个选项按钮会在表单上显示相应的形状 设置 Visible 属性 为 真 (.T.)
以显示形状 设置 为




假
(.F.) 则在显示另一个形状前隐藏此形状 每个形状的 Height Width 和



Curvature
属性 决定了所创建的形状类型 圆 椭圆或长方形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 形

frmMyForm.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
CLEAR
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
