7、 停靠你的表单
你现在可以用新的表单Dockable属性把停靠行为加入到你的程序中。默认的Dockable值是0,跟以前版本的行为一致。然而,如果你把Dockable设为1或2,表单的标题栏高度就会变成原来的一半,这时表单就支持停靠了(设为1表示表单已停靠)。
表单支持停靠(Dockable设为1或2)后,你可以用WINDOWS菜单的Dockable项或在表单的标题栏点击鼠标右键来切换这2种设置。当Dockable=1时,你可以将表单拖放到可停靠的位置,你也可以用以下代码实现停靠: * 1=top, 2=left, 3=right, 4=bottom
THISFORM.Dock(nPosition)
* tab-dock to another form
THISFORM.Dock(4, oFormTarget)
* tab-dock to a window
DOCK NAME oFormRef POSITION 4 WINDOW WindowName 一个已停靠的表单也可以通过WINDOWS菜单的Dockable项或在表单的标题栏点击鼠标右键来终止停靠,或用以下的代码: * set form to "supports docking, but not docked"
THISFORM.Dockable = 2
* or call the form's dock method
THISFORM.Dock(-1) 你可以运行下面的代码看看停靠的过程。这些代码建了3个表单,并设定了TOP/LEFT,然后把它们停靠到COMMAND窗口上。你可以用上面的Dock/Undock按钮来实现表单的停靠/不停靠,点击3个中任一一个表单的X按钮会关闭演示。
选中一个表单后,你可以用菜单来切换它的Dockable属性,当表单处于可停靠状态时,你可以把它拖放到屏幕上的任一个可停靠的位置。图2显示了3个可互相切换的已停靠表单。
图二:
LOCAL oform1 as Myform
oform1=CREATEOBJECT("Myform")
oform1.Caption="Customers"
oform1.lblName.Caption = "Customers"
oform1.top = 100
oform1.left = 0
LOCAL oform2 as Myform
oform2=CREATEOBJECT("Myform")
oform2.Caption="Employees"
oform2.lblName.Caption = "Employees"
oform2.top = 100
oform2.left = 325
LOCAL oform3 as Myform
oform3=CREATEOBJECT("Myform")
oform3.Caption="Invoices"
oform3.lblName.Caption = "Invoices"
oform3.top = 275
oform3.left = 0
DOCK NAME oform1 POSITION 4 WINDOW Command
DOCK NAME oform2 POSITION 4 WINDOW Command
DOCK NAME oform3 POSITION 4 WINDOW Command
oform1.show()
oform2.show()
oform3.Show()
READ EVENTS
DEFINE CLASS MyForm AS Form
Dockable = 1 && supports docking and is dockable
Height = 150
Width = 300
ADD OBJECT lblName AS MyLabel
ADD OBJECT btnUndock AS MyUndockButton
FUNCTION Destroy()
CLEAR EVENTS
ENDDEFINE DEFINE CLASS MyUndockButton AS CommandButton
Height = 25
Width = 100
Left = 180
Top = 100
Anchor = 12 && fixed distance bottom/right
Caption = "Dock/Undock"
FUNCTION Click()
IF THISFORM.Docked
THISFORM.Dock(-1)
ELSE
IF THISFORM.Dockable = 1
* error if not dockable
DOCK NAME THISFORM POSITION 4 WINDOW Command
ENDIF
ENDIF
ENDDEFINE
DEFINE CLASS MyLabel AS Label
FontSize= 18
Height = 50
Width = 150
Top = 50
Left = 75
Alignment = 2
Anchor = 240 && relative on all sides
Caption = []
FontSize = 14
FontBold = .T.
FontName = "Verdana"
ENDDEFINE