关键是登录窗体的WindowType=1,如果子窗体中没有设置这个属性,可以在调用时用Show(1),同样的效果。这叫“模式表单”,只有结束这个表单后才能进入下一步。
主表单是顶层表单ShowWindow=2,子表单必须是ShowWindow=1的子窗体,在子窗体中同时设WindowType=1,两者必须同时存在。在启动主窗体之后再启动登陆窗体,顺序不要错了。
[ 本帖最后由 TonyDeng 于 2011-8-12 22:57 编辑 ]
2011-08-12 22:40

2011-08-12 22:53
2011-08-12 23:02
2011-08-12 23:09
2011-08-12 23:12
2011-08-12 23:18
2011-08-12 23:18
程序代码:SET TALK OFF
PUBLIC glLogin AS Boolean
glLogin = .F.
PUBLIC glSuccess AS Boolean
glSuccess = .F.
Form1 = CREATEOBJECT("C_Form1")
Form1.Show
READ EVENTS
RETURN
DEFINE CLASS C_Form1 AS Form
Caption = "Form1"
ShowWindow = 2
Width = 600
Height = 400
AutoCenter = .T.
ADD OBJECT Command1 AS CommandButton WITH Caption = "录入", Height = 25, Width = 60, Top = 20, Left = 20, Enabled = .F.
ADD OBJECT Command2 AS CommandButton WITH Caption = "借出", Height = 25, Width = 60, Top = 50, Left = 20, Enabled = .F.
ADD OBJECT Command3 AS CommandButton WITH Caption = "还回", Height = 25, Width = 60, Top = 80, Left = 20, Enabled = .F.
ADD OBJECT Command4 AS CommandButton WITH Caption = "查阅", Height = 25, Width = 60, Top = 120, Left = 20, Enabled = .F.
ADD OBJECT Command5 AS CommandButton WITH Caption = "关闭", Height = 25, Width = 60, Top = 360, Left = 20
PROCEDURE Activate
IF !glLogin
glLogin = .T.
LOCAL frm_Login AS Object
frm_Login = CREATEOBJECT("C_Login")
frm_Login.Show
IF glSuccess
ThisForm.SetAll("Enabled", .T., "CommandButton")
ENDIF
ENDIF
ENDPROC
PROCEDURE Destroy
CLEAR EVENTS
ENDPROC
PROCEDURE Command5.Click
RELEASE ThisForm
ENDPROC
ENDDEFINE
DEFINE CLASS C_Login AS Form
Caption = "登录界面"
ShowWindow = 1
WindowType = 1
Width = 300
Height = 120
ControlBox = .F.
AutoCenter = .T.
ADD OBJECT Label1 AS Label WITH Caption = "请输入用户名: ", Alignment = 1, Height = 25, Width = 100, Top = 20, Left = 20
ADD OBJECT Text1 AS TextBox WITH Value = "", Height = 25, Width = 150, Top = 20, Left = 120
ADD OBJECT Label2 AS Label WITH Caption = "请输入密码口令: ", Alignment = 1, Height = 25, Width = 100, Top = 50, Left = 20
ADD OBJECT Text2 AS TextBox WITH Value = "", PasswordChar = "*", Height = 25, Width = 150, Top = 50, Left = 120
ADD OBJECT Command1 AS CommandButton WITH Caption = "确定登录", Height = 25, Width = 60, Top = 80, Left = 60
ADD OBJECT Command2 AS CommandButton WITH Caption = "关闭退出", Height = 25, Width = 60, Top = 80, Left = 130
PROCEDURE Command1.Click
glSuccess = (ALLTRIM(ThisForm.Text2.Value) == "Admin")
RELEASE ThisForm
ENDPROC
PROCEDURE Command2.Click
RELEASE ThisForm
ENDPROC
ENDDEFINE 
2011-08-13 07:15

2011-08-13 08:37
2011-08-13 12:33